์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- well known ํฌํธ
- i-type
- ์ค๋ธ์
- til
- xv6
- ์ฐ๋ถํฌdb
- ์ค๋ฅ์ ์ด
- ํ๋ ์ ๊ตฌ์กฐ
- tcp ์ธ๊ทธ๋จผํธ
- ํ ํฐ ๋ฒ์ค
- 99ํด๋ฝ
- ํฐ์คํ ๋ฆฌ์ฑ๋ฆฐ์ง
- reducible
- IEEE 802
- ๋น์ฃผ๊ธฐ์ ํธ
- ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ
- ์์๋ฒํธ
- ์ค๋ ๋
- ๋ฐ์ดํฐ ์ ์ก
- ์๋น์ค ํ๋ฆฌ๋ฏธํฐ๋ธ
- ํ๋ก์ด๋์์
- ์ฃผ๊ธฐ์ ํธ
- leetcode
- tcp ํ๋กํ ์ฝ
- ์ค๋ฅ๊ฒ์ถ
- git merge
- ์ฝ๋ฉํ ์คํธ์ค๋น
- ํญํด99
- ๊ฐ๋ฐ์์ทจ์
- mariadb
- Today
- Total
Unfazedโ๏ธ๐ฏ
command line์ ํ์ฉํ JAR ํ์ผ ์์ฑํ๊ธฐ ๋ณธ๋ฌธ
Java ๊ฐ๋ฐ์์ JAR(Java Archive) ํ์ผ์ Java ํด๋์ค ํ์ผ๊ณผ ๊ด๋ จ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ํ๋์ ํ์ผ๋ก ๋ฌถ์ด ๋ฐฐํฌํ ์ ์๊ฒ ํด์ฃผ๋ ํ์์ ์ธ ์์๋ค. ํ๋์ IDE๋ Maven, Gradle ๊ฐ์ ๋น๋ ๋๊ตฌ๋ค์ด JAR ์์ฑ์ ์๋ํํด ์ฃผ์ง๋ง, JAR ์์ฑ ์๋ ํ๋ก์ธ์ค๋ฅผ ์ดํดํ๋ ๊ฒ์ Java์ ํจํค์ง ์์คํ ์ ์ดํดํ๊ธฐ ์ํด ์ค์ํ๋ค.
JDK(Java Development Kit) ์ค์น ํ์
JDK - ์ปดํ์ผ์ ์ํ javac์ jar ํ์ผ ์์ฑ์ ์ํ jar ๊ฐ์ ํ์ ๋๊ตฌ๋ค์ด ํฌํจ๋์ด ์๋ค.
JAR ํ์ผ์ ์๋ฐ ๋ฐํ์์ด ํจ์จ์ ์ผ๋ก ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐฐํฌ(deploy)ํ ์ ์๋ ์๋จ์ผ๋ก ์ค๊ณ๋์๋ค. ์๋ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ฑํ๋ ํด๋์ค์ ๊ด๋ จ ๋ฆฌ์์ค๋ค์ ๋จ์ผ ํ์ผ๋ก ๋ฌถ์ด ์์ถ๋ ํํ์ธ JAR ํ์ผ์ ํ ์ฐจ๋ก์ ์์ฒญ์ผ๋ก ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฒด๋ฅผ ๋ค์ด๋ก๋ํ ์ ์๊ฒ ํด์ค๋ค.
1. Java ์์ค ์ฝ๋ ์์ฑ
public class MyJavaFile {
public static void main(String[] args) {
System.out.println("Hello World!");
}
}
2. ์์ค ์ฝ๋ ์ปดํ์ผ
Java ์์ค ์ฝ๋๋ฅผ JVM(Java Virtual Machine)์ด ์คํํ ์ ์๋ ๋ฐ์ดํธ์ฝ๋๋ก ์ปดํ์ผํด์ผ ํ๋ค.
javac MyJavaFile.java
์ด ๋ช ๋ น์ด๋ ์ปดํ์ผ๋ ๋ฐ์ดํธ์ฝ๋๊ฐ ํฌํจ๋ MyJavaFile.class ํ์ผ์ ์์ฑํ๋ค.
๋ง์ฝ ์์ค ์ฝ๋์ ๋ฌธ๋ฒ ์ค๋ฅ ๋ฑ์ ๋ฌธ์ ๊ฐ ์๋ค๋ฉด ์ปดํ์ผ๋ฌ๊ฐ ํด๋น ๋จ๊ณ์์ ์ด๋ฅผ ์๋ฆฐ๋ค.
3. Manifest ํ์ผ ์์ฑ
Manifest ํ์ผ์ JAR์ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ํฌํจํ๋ ํน๋ณํ ํ์ผ๋ก ์คํํ ๋ฉ์ธ ํด๋์ค์ ๋ฒ์ ์ ๋ณด ๊ฐ์ ์ค์ํ ์ ๋ณด๋ฅผ ์ ๊ณตํ๋ค.
- META-INF ๋๋ ํ ๋ฆฌ ์์ฑ: mkdir META-INF
- META-INF ๋๋ ํ ๋ฆฌ ์์ MANIFEST.MF ํ์ผ์ ์๋์ ๊ฐ์ด ์์ฑ:
Manifest-Version: 1.0
Main-Class: MyJavaFile
Built-By: ์์ฑ์์ด๋ฆ
Manifest ํ์ผ ์์ฑ ์ ์ฃผ์์ฌํญ:
- ํ์ผ ๋์ ๋ฐ๋์ ์ ์ค(newline)
- Main-Class ์์ฑ์ main ๋ฉ์๋๊ฐ ์๋ ํด๋์ค๋ฅผ ์ง์
- Manifest ํ์์ ์ฝ๋ก (:)์ผ๋ก ๊ตฌ๋ถ๋ ํค : ๊ฐ ์
4. JAR ํ์ผ ์์ฑํ๊ธฐ
jar ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ ๋ชจ๋ ํจํค์ง
jar cmvf META-INF/MANIFEST.MF myJarFile.jar MyJavaFile.class
๋ช ๋ น์ด ์ต์ ์ค๋ช :
- c: ์ ์์นด์ด๋ธ ์์ฑ
- m: ๊ธฐ์กด ํ์ผ์ manifest ์ ๋ณด ํฌํจ
- v: ์์ธ ์ถ๋ ฅ ์์ฑ(์์ถ๋ฅ , ์์ฑ์ผ์ ๋ฑ)
- f: ์์นด์ด๋ธ ํ์ผ๋ช ์ง์
์ถ๋ ฅ ๊ฒฐ๊ณผ ์
added manifest
adding: MyJavaFile.class(in = 426) (out= 289)(deflated 32%)
5. JAR ํ์ผ ํ ์คํธํ๊ธฐ
JAR ํ์ผ ์คํ
java -jar myJarFile.jar
์คํ ๊ฒฐ๊ณผ
Hello World!
์์ฃผ ๋ฐ์ํ๋ ๋ฌธ์ ์ ํด๊ฒฐ ๋ฐฉ๋ฒ
- Manifest ํ์ผ ํฌ๋งท ๊ด๋ จ
- Manifest ํ์ผ ๋์ ์ ์ค์ด ์๋์ง ํ์ธ
- ํค-๊ฐ ์์ ์ฝ๋ก ๋ค์ ๊ณต๋ฐฑ์ด ์๋์ง ํ์ธ
- Main-Class๋ฅผ ์ฌ๋ฐ๋ฅธ ํด๋์ค ์ด๋ฆ์ผ๋ก ์ง์ ํ๋์ง ํ์ธ
- ํด๋์ค๋ฅผ ์ฐพ์ ์ ์๋ ์ค๋ฅ
- ํ์ํ ๋ชจ๋ ํด๋์ค ํ์ผ์ด JAR์ ํฌํจ๋์ด ์๋์ง ํ์ธ
- ํจํค์ง ๊ตฌ์กฐ๊ฐ manifest์ Main-Class ์ ์ธ๊ณผ ์ผ์นํ๋์ง ํ์ธ
- ์ธ๋ถ ์์กด์ฑ์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ํด๋์คํจ์ค๊ฐ ์ฌ๋ฐ๋ฅด๊ฒ ์ค์ ๋์ด ์๋์ง ํ์ธ
- ๊ถํ ๊ด๋ จ ๋ฌธ์
- ๋์ ๋๋ ํ ๋ฆฌ์ ์ฐ๊ธฐ ๊ถํ์ด ์๋์ง ํ์ธ
- ์์ฑ๋ JAR ํ์ผ์ ์คํ ๊ถํ์ด ์๋์ง ํ์ธ
๊ณ ๊ธ JAR ๊ธฐ๋ฅ
1) ์ฌ๋ฌ ํ์ผ ์ถ๊ฐํ๊ธฐ
์ฌ๋ฌ ํด๋์ค ํ์ผ์ด๋ ๋ฆฌ์์ค๋ฅผ ํฌํจ์ํค๊ธฐ
jar cmvf META-INF/MANIFEST.MF myJarFile.jar *.class resources/
c(Create) : ์๋ก์ด jar ํ์ผ์์ฑ
m : ์ง์ ๋ manifest ํ์ผ๋ก๋ถํฐ manifest ์ ๋ณด๋ฅผ jar ํ์ผ ๋ด ํฌํจ์์ผ ์ค
v : ์์ถ๋ฅ ๋ฐ ์์ฑ์ผ์ ๋ฑ์ ์ ๋ณด ์ ๊ณต
f : jar ํ์ผ์ ์ด๋ฆ์ ์ง์ ํ ๊ฒฝ์ฐ ์ฌ์ฉ
2) JAR ๋ด์ฉ ๋ณด๊ธฐ
JAR ํ์ผ ๋ด์ฉ ๋์ดํ๊ธฐ
jar tf myJarFile.jar
t(table) : jar ํ์ผ์ ๋ชฉ๋ก์ ๋์ด
f : jar ํ์ผ์ ์ด๋ฆ์ ์ง์ ํ ๊ฒฝ์ฐ ์ฌ์ฉ
3) JAR ๋ด์ฉ ์ถ์ถํ๊ธฐ
jar xf myJarFile.jar
x(eXtract) : jarํ์ผ์์ ํ์ผ ์ถ์ถ
f : jar ํ์ผ์ ์ด๋ฆ์ ์ง์ ํ ๊ฒฝ์ฐ ์ฌ์ฉ
๊ฒฐ๋ก
ํ๋์ ๋น๋ ๋๊ตฌ๋ค์ด JAR ์์ฑ์ ์๋ํํด ์ฃผ์ง๋ง, JAR ํ์ผ ์์ฑ๊ณผ์ ์ ์ดํด๋ ์๋์ ๊ฐ์ ์ํฉ์ ํ์ํ๋ค.
- ํจํค์ง ๋ฌธ์ ๋๋ฒ๊น
- ์ปค์คํ ๋น๋ ํ๋ก์ธ์ค ์์ฑ
- ๋น๋ ๋๊ตฌ์ ๋์ ์๋ฆฌ ์ดํด
- ๋น๋ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ ์ ์๋ ํ๊ฒฝ์์์ ์์
์ฐธ๊ณ ์๋ฃ :
https://engineering.tomtom.com/create-java-jar/
Back to Basics: How to create a java JAR using command line
In the world of Java development, JAR(Java Archive) files play a very important role in packaging and distributing our applications. Whether you are a beginner or an experienced developer, it’s essential to understand the process of creating a JAR file.
engineering.tomtom.com
https://ko.wikipedia.org/wiki/JAR_(%ED%8C%8C%EC%9D%BC_%ED%8F%AC%EB%A7%B7)
JAR (ํ์ผ ํฌ๋งท) - ์ํค๋ฐฑ๊ณผ, ์ฐ๋ฆฌ ๋ชจ๋์ ๋ฐฑ๊ณผ์ฌ์
์ํค๋ฐฑ๊ณผ, ์ฐ๋ฆฌ ๋ชจ๋์ ๋ฐฑ๊ณผ์ฌ์ . JAR(Java Archive, ์๋ฐ ์์นด์ด๋ธ)๋ ์ฌ๋ฌ๊ฐ์ ์๋ฐ ํด๋์ค ํ์ผ๊ณผ, ํด๋์ค๋ค์ด ์ด์ฉํ๋ ๊ด๋ จ ๋ฆฌ์์ค(ํ ์คํธ, ๊ทธ๋ฆผ ๋ฑ) ๋ฐ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ํ๋์ ํ์ผ๋ก ๋ชจ์์ ์๋ฐ
ko.wikipedia.org