๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Environment·Tool/IntelliJ IDEA

[JAVA] IntelliJ IDEA - jar ํŒŒ์ผ export, import ๋ฐฉ๋ฒ•

by Leica 2020. 1. 5.
๋ฐ˜์‘ํ˜•

1. JAR ํŒŒ์ผ Export

์œ„ ์˜ˆ์‹œ ํ”„๋กœ์ ํŠธ์˜ JarExample ๋ชจ๋“ˆ์„ jar ํŒŒ์ผ๋กœ export ํ•˜๋ คํ•œ๋‹ค. IntelliJ๋Š” ํ•œ ํ”„๋กœ์ ํŠธ ์•ˆ์— ๋‹ค์ˆ˜์˜ ๋ชจ๋“ˆ์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‹ค. ์ง€๊ธˆ์€ ํ•˜๋‚˜์˜ ๋ชจ๋“ˆ๋งŒ์„ ๊ฐ–๊ณ ์žˆ๋Š” ์ƒํƒœ์ด๋‹ค.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Player{name='Tim', hitPoints=10, strength=15, weapon='Sword'}
Saving Tim to storage device
Saving 10 to storage device
Saving 15 to storage device
Saving Sword to storage device
Player{name='Tim', hitPoints=8, strength=15, weapon='Sword'}
Saving Tim to storage device
Saving 8 to storage device
Saving 15 to storage device
Saving Stormbringer to storage device
Player{name='Tim', hitPoints=8, strength=15, weapon='Stormbringer'}
Strength = 40
Saving Werewolf to storage device
Saving 20 to storage device
Saving 40 to storage device
 
Process finished with exit code 0
cs

์šฐ์„  ์ด ํ”„๋กœ์ ํŠธ๋Š” main() ์‹คํ–‰ ์‹œ ์œ„์™€ ๊ฐ™์€ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ€์ ธ์˜จ๋‹ค. ์‹คํ–‰ ๊ฒฐ๊ณผ์— ์˜๋ฏธ๊ฐ€ ์žˆ๋Š”๊ฑด ์•„๋‹ˆ๊ณ  ์ด ํ”„๋กœ์ ํŠธ๋ฅผ jar ํŒŒ์ผ๋กœ export ํ•œ ๋’ค ๋‹ค๋ฅธ ํ”„๋กœ์ ํŠธ์— import ํ–ˆ์„ ๋•Œ ๊ฐ™์€ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜ค๋Š”์ง€ ํ™•์ธํ•  ๊ฒƒ์ด๋‹ค.

 

IntelliJ IDEA ๋ฉ”๋‰ด

๋ชจ๋“ˆ์„ ์„ ํƒํ•˜๊ณ (์—ฌ๊ธฐ์„œ๋Š” JarExample) File - Project Structure ๋ฉ”๋‰ด (๋‹จ์ถ•ํ‚ค : Ctrl + Alt + Shift + S) ํด๋ฆญ

 

Project Structure ์ฐฝ

์ขŒ์ธก ํŒจ๋„์—์„œ Artifacts๋ฅผ ํด๋ฆญํ•˜๊ณ  artifact๋ฅผ ์ถ”๊ฐ€ํ•˜๊ธฐ ์œ„ํ•ด ์šฐ์ธก +(Add) ๋ฒ„ํŠผ ํด๋ฆญ(๋‹จ์ถ•ํ‚ค : Alt + Insert)

 

Project Structure ์ฐฝ

JAR - From modules with dependencies... ํด๋ฆญ

 

JAR๋Š” java archive๋ฅผ ์˜๋ฏธํ•˜๋ฉฐ, java ์ฝ”๋“œ์˜ zip ํŒŒ์ผ๊ณผ ์œ ์‚ฌํ•œ ๊ฐœ๋…์ด๋‹ค.

 

Create JAR from Modules ์ฐฝ

Module ๋ž€์— ์„ ํƒํ•œ ๋ชจ๋“ˆ ๋ช…์ธ JarExample์ด ์ž๋™์œผ๋กœ ์ž…๋ ฅ๋œ๋‹ค. Executable(์‹คํ–‰ ๊ฐ€๋Šฅํ•œ) JAR ํŒŒ์ผ์„ ๋งŒ๋“ค๋ ค๋ฉด Main Class๋ฅผ ๋ช…์‹œํ•ด์•ผ ํ•˜์ง€๋งŒ ์ง€๊ธˆ์€ ๋‹ค๋ฅธ ํ”„๋กœ์ ํŠธ์—์„œ ์™ธ๋ถ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ์‚ฌ์šฉํ•  JAR ํŒŒ์ผ์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ๊ณต๋ž€์œผ๋กœ ๋‘”๋‹ค. JAR files from libraries๋Š” extract to the target JAR(๊ธฐ๋ณธ๊ฐ’)์„ ์„ ํƒํ•˜๊ณ  OK๋ฅผ ํด๋ฆญํ•œ๋‹ค.

 

Project Structure ์ฐฝ

๊ทธ๋Ÿฌ๋ฉด ์œ„์™€ ๊ฐ™์€ ๊ฒฐ๊ณผ๊ฐ€ ๋œฌ๋‹ค. Output directory ๋ž€์— JAR ํŒŒ์ผ์„ ๋งŒ๋“ค ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ์ž๋™์œผ๋กœ ์ž…๋ ฅ๋œ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์€ ํ”„๋กœ์ ํŠธ ๋””๋ ‰ํ† ๋ฆฌ ํ•˜์œ„์— out\artifacts\๋ชจ๋“ˆ๋ช…_jar ํด๋”๊ฐ€ ์ž…๋ ฅ๋œ๋‹ค. ํ•„์š” ์‹œ ๋‹ค๋ฅธ ๋””๋ ‰ํ„ฐ๋ฆฌ๋กœ ๋ณ€๊ฒฝํ•˜๊ณ  OK๋ฅผ ํด๋ฆญํ•œ๋‹ค.

 

IntelliJ IDEA ๋ฉ”๋‰ด

Build - Build Project๋ฅผ ํด๋ฆญํ•˜์—ฌ ๋นŒ๋“œํ•œ๋‹ค. (๋‹จ์ถ•ํ‚ค : Ctrl + F9)

 

IntelliJ ํ•˜๋‹จ์— ๋นŒ๋“œ ์ค‘ ์ž„์ด ํ‘œ์‹œ๋œ๋‹ค.

 

IntelliJ IDEA ๋ฉ”๋‰ด

๋นŒ๋“œ๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ๋๋‚˜๋ฉด Build - Build Artifacts๋ฅผ ํด๋ฆญํ•œ๋‹ค.

 

Build Artifact ์„œ๋ธŒ ๋ฉ”๋‰ด

๊ทธ๋Ÿฌ๋ฉด IntelliJ ์ฐฝ ๊ฐ€์šด๋ฐ์— Build Artifact ์„œ๋ธŒ ๋ฉ”๋‰ด๊ฐ€ ๋œฌ๋‹ค. JarExample:jar - Build๋ฅผ ํด๋ฆญํ•œ๋‹ค.

 

์—ฌ๊ธฐ๊นŒ์ง€ ์™„๋ฃŒํ•˜๋ฉด ํ•ด๋‹น ๋ชจ๋“ˆ์˜ JAR ํŒŒ์ผ์ด ์ƒ์„ฑ๋œ๋‹ค.

 

๋ฐ˜์‘ํ˜•

 

2. JAR ํŒŒ์ผ Import

์œ„์—์„œ ์ƒ์„ฑํ•œ JAR ํŒŒ์ผ์„ ์ด AnotherJarExample ํ”„๋กœ์ ํŠธ์— importํ•˜์—ฌ ์™ธ๋ถ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ์ถ”๊ฐ€ํ•œ๋‹ค. ๋นˆ ํ”„๋กœ์ ํŠธ์ด๋ฉฐ, ํ˜„์žฌ๋Š” External Libraries์— JDK๋งŒ ์กด์žฌํ•œ๋‹ค.

 

IntelliJ IDEA ๋ฉ”๋‰ด

File - Project Structure ํด๋ฆญ

 

Project Structure ์ฐฝ

์™ผ์ชฝ ํŒจ๋„์—์„œ Libraries๋ฅผ ํด๋ฆญํ•˜๊ณ  ์šฐ์ธก +(Add)๋ฅผ ํด๋ฆญํ•˜๋ฉด ์œ„์™€ ๊ฐ™์€ ์„œ๋ธŒ ๋ฉ”๋‰ด๊ฐ€ ๋œฌ๋‹ค. New Project Libarary์—์„œ Java๋ฅผ ์„ ํƒํ•œ๋‹ค.

 

Select Library Files ์ฐฝ

importํ•  JAR ํŒŒ์ผ์„ ์„ ํƒํ•˜๊ณ  OK๋ฅผ ํด๋ฆญํ•œ๋‹ค. ์—ฌ๊ธฐ์„œ๋Š” ์œ„์—์„œ ๋งŒ๋“  JarExample.jar ํŒŒ์ผ์„ ์„ ํƒํ•˜์˜€๋‹ค.

 

JAR ํŒŒ์ผ์„ importํ•  ๋ชจ๋“ˆ์„ ์„ ํƒํ•˜๊ณ  OK๋ฅผ ํด๋ฆญํ•œ๋‹ค. ์ด ์˜ˆ์‹œ ํ”„๋กœ์ ํŠธ์—๋Š” AnotherJarExample ๋ชจ๋“ˆ ํ•˜๋‚˜๋งŒ ์žˆ๋Š” ์ƒํƒœ์ด๋‹ค.

 

Project Structure ์ฐฝ

OK๋ฅผ ํด๋ฆญํ•˜์—ฌ import๋ฅผ ์™„๋ฃŒํ•œ๋‹ค.

 

๊ทธ๋Ÿฌ๋ฉด ํ”„๋กœ์ ํŠธ์˜ External Libraries ํ•˜์œ„์— JarExample์ด ์ถ”๊ฐ€๋œ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ์ •์ƒ์ ์œผ๋กœ import ๋๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ์•„๊นŒ์™€ ๋™์ผํ•œ main() ๋ฉ”์†Œ๋“œ๋ฅผ ํ˜ธ์ถœํ•ด๋ณด๋„๋ก ํ•˜๊ฒ ๋‹ค.

 

๋™์ผํ•œ ์‹คํ–‰ ๊ฒฐ๊ณผ

๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€