Linux 명령을 사용하고 Eclipse 바로 가기 없이 실행 가능한 .jar 파일을 만드는 방법은 무엇입니까?
게시 됨: 2022-01-03
지금까지는 Eclipse IDE에서 마우스 오른쪽 버튼을 클릭하고 몇 번의 간단한 클릭으로 실행 가능한 .jar 파일을 만드는 것이 너무 쉬웠습니다. 지난 주에 저는 일반적으로 많은 서비스를 호스팅하는 Digital Ocean 노드에서 실행 가능한 .jar file manually
생성해야 했습니다.
명령어만으로 .jar 파일을 직접 생성하는데 시간이 좀 걸리긴 했지만 10분 만에 실행 가능한 .jar 파일이 완성되었습니다.
아래 질문 중 하나가 있으면 올바른 위치에 있습니다.
- Linux 명령줄에서 jar 파일을 만드는 가장 좋은 방법
- Linux에서 jar 파일을 실행 가능하게 만드는 방법은 무엇입니까?
- Linux에서 jar 파일을 어떻게 컴파일합니까?
- JAR 파일을 Linux 실행 파일로 만드는 방법은 무엇입니까?
- Linux 터미널에서 .Jar 파일을 만들고 실행하는 방법은 무엇입니까?
시작하자:
1단계) Linux 시스템에 Java가 설치되어 있는지 확인
Java가 이미 설치된 경우 step-4
직접 이동합니다. javac
명령을 실행하고 아래 결과가 표시되면 호스트에 Java가 설치되지 않은 것입니다.
1 2 3 4 5 6 7 8 |
root @ localhost : ~ / java / src # javac Command 'javac' not found , but can be installed with : apt install openjdk - 11 - jdk - headless apt install default - jdk apt install openjdk - 8 - jdk - headless apt install ecj |
2단계) Linux 호스트에 Java 설치
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 32 33 34 35 36 37 38 39 40 41 42 |
root @ localhost : ~ / java / src # apt install openjdk-11-jdk-headless Reading package lists . . . Done Building dependency tree Reading state information . . . Done Suggested packages : openjdk - 11 - demo openjdk - 11 - source The following NEW packages will be installed : openjdk - 11 - jdk - headless 0 upgraded , 1 newly installed , 0 to remove and 92 not upgraded . Need to get 217 MB of archives . After this operation , 228 MB of additional disk space will be used . Get : 1 http : //mirrors.linode.com/ubuntu cosmic-updates/main amd64 openjdk-11-jdk-headless amd64 11.0.1+13-3ubuntu3.18.10.1 [217 MB] Fetched 217 MB in 3s ( 70.3 MB / s ) Selecting previously unselected package openjdk - 11 - jdk - headless : amd64 . ( Reading database . . . 107409 files and directories currently installed . ) Preparing to unpack . . . / openjdk - 11 - jdk - headless_11 . 0.1 + 13 - 3ubuntu3.18.10.1_amd64.deb . . . Unpacking openjdk - 11 - jdk - headless : amd64 ( 11.0.1 + 13 - 3ubuntu3.18.10.1 ) . . . Setting up openjdk - 11 - jdk - headless : amd64 ( 11.0.1 + 13 - 3ubuntu3.18.10.1 ) . . . update - alternatives : using / usr / lib / jvm / java - 11 - openjdk - amd64 / bin / jar to provide / usr / bin / jar ( jar ) in auto mode update - alternatives : using / usr / lib / jvm / java - 11 - openjdk - amd64 / bin / jarsigner to provide / usr / bin / jarsigner ( jarsigner ) in auto mode update - alternatives : using / usr / lib / jvm / java - 11 - openjdk - amd64 / bin / javac to provide / usr / bin / javac ( javac ) in auto mode update - alternatives : using / usr / lib / jvm / java - 11 - openjdk - amd64 / bin / javadoc to provide / usr / bin / javadoc ( javadoc ) in auto mode update - alternatives : using / usr / lib / jvm / java - 11 - openjdk - amd64 / bin / javap to provide / usr / bin / javap ( javap ) in auto mode update - alternatives : using / usr / lib / jvm / java - 11 - openjdk - amd64 / bin / jcmd to provide / usr / bin / jcmd ( jcmd ) in auto mode update - alternatives : using / usr / lib / jvm / java - 11 - openjdk - amd64 / bin / jdb to provide / usr / bin / jdb ( jdb ) in auto mode update - alternatives : using / usr / lib / jvm / java - 11 - openjdk - amd64 / bin / jdeprscan to provide / usr / bin / jdeprscan ( jdeprscan ) in auto mode update - alternatives : using / usr / lib / jvm / java - 11 - openjdk - amd64 / bin / jdeps to provide / usr / bin / jdeps ( jdeps ) in auto mode update - alternatives : using / usr / lib / jvm / java - 11 - openjdk - amd64 / bin / jimage to provide / usr / bin / jimage ( jimage ) in auto mode update - alternatives : using / usr / lib / jvm / java - 11 - openjdk - amd64 / bin / jinfo to provide / usr / bin / jinfo ( jinfo ) in auto mode update - alternatives : using / usr / lib / jvm / java - 11 - openjdk - amd64 / bin / jlink to provide / usr / bin / jlink ( jlink ) in auto mode update - alternatives : using / usr / lib / jvm / java - 11 - openjdk - amd64 / bin / jmap to provide / usr / bin / jmap ( jmap ) in auto mode update - alternatives : using / usr / lib / jvm / java - 11 - openjdk - amd64 / bin / jmod to provide / usr / bin / jmod ( jmod ) in auto mode update - alternatives : using / usr / lib / jvm / java - 11 - openjdk - amd64 / bin / jps to provide / usr / bin / jps ( jps ) in auto mode update - alternatives : using / usr / lib / jvm / java - 11 - openjdk - amd64 / bin / jrunscript to provide / usr / bin / jrunscript ( jrunscript ) in auto mode update - alternatives : using / usr / lib / jvm / java - 11 - openjdk - amd64 / bin / jshell to provide / usr / bin / jshell ( jshell ) in auto mode update - alternatives : using / usr / lib / jvm / java - 11 - openjdk - amd64 / bin / jstack to provide / usr / bin / jstack ( jstack ) in auto mode update - alternatives : using / usr / lib / jvm / java - 11 - openjdk - amd64 / bin / jstat to provide / usr / bin / jstat ( jstat ) in auto mode update - alternatives : using / usr / lib / jvm / java - 11 - openjdk - amd64 / bin / jstatd to provide / usr / bin / jstatd ( jstatd ) in auto mode update - alternatives : using / usr / lib / jvm / java - 11 - openjdk - amd64 / bin / rmic to provide / usr / bin / rmic ( rmic ) in auto mode update - alternatives : using / usr / lib / jvm / java - 11 - openjdk - amd64 / bin / serialver to provide / usr / bin / serialver ( serialver ) in auto mode update - alternatives : using / usr / lib / jvm / java - 11 - openjdk - amd64 / bin / jaotc to provide / usr / bin / jaotc ( jaotc ) in auto mode update - alternatives : using / usr / lib / jvm / java - 11 - openjdk - amd64 / bin / jhsdb to provide / usr / bin / jhsdb ( jhsdb ) in auto mode |
3단계) Java에서 확인
아래 명령을 다시 실행하면 설치된 Java 세부 정보가 표시되어야 합니다.

1 2 3 4 5 6 7 |
root @ localhost : ~ / crunchify / src / package # which java / usr / bin / java root @ localhost : ~ / crunchify / src / package # java -version openjdk version "11.0.1" 2018 - 10 - 16 OpenJDK Runtime Environment ( build 11.0.1 + 13 - Ubuntu - 3ubuntu3.18.10.1 ) OpenJDK 64 - Bit Server VM ( build 11.0.1 + 13 - Ubuntu - 3ubuntu3.18.10.1 , mixed mode , sharing ) |
4단계)
다음은 실행 가능한 .jar 파일을 생성하기 위해 실행해야 하는 명령 목록입니다.
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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
root @ localhost : ~ # pwd / root root @ localhost : ~ # mkdir crunchify root @ localhost : ~ # cd crunchify/ root @ localhost : ~ / crunchify # mkdir src root @ localhost : ~ / crunchify # mkdir src/package root @ localhost : ~ / crunchify # cd src/package/ root @ localhost : ~ / crunchify / src / package # vi Crunchify.java root @ localhost : ~ / crunchify / src / package # cat Crunchify.java public class Crunchify { public static void main ( String args [ ] ) { System . out . println ( "\n\nHello there... /n This is an example to create executable .jar file using only commands...\n\n" ) ; } } root @ localhost : ~ / crunchify / src / package # cd .. root @ localhost : ~ / crunchify / src # mkdir build root @ localhost : ~ / crunchify / src # mkdir build/classes root @ localhost : ~ / crunchify / src # javac -sourcepath src -d build/classes package/Crunchify.java root @ localhost : ~ / crunchify / src # cd package/ root @ localhost : ~ / crunchify / src / package # cp Crunchify.java ../ root @ localhost : ~ / crunchify / src / package # cd .. root @ localhost : ~ / crunchify / src # java -classpath build/classes/ Crunchify Hello there . . . / n This is an example to create executable . jar file using only commands . . . root @ localhost : ~ / crunchify / src # echo Main-Class: Crunchify>myManifest root @ localhost : ~ / crunchify / src # jar cfm build/Crunchify.jar myManifest -C build/classes/ . root @ localhost : ~ / crunchify / src # java -jar build/Crunchify.jar Hello there . . . / n This is an example to create executable . jar file using only commands . . . root @ localhost : ~ / crunchify / src # root @ localhost : ~ / crunchify / src # cd build/ root @ localhost : ~ / crunchify / src / build # ls -ltra total 16 drwxr - xr - x 2 root root 4096 Mar 31 00 : 48 classes drwxr - xr - x 4 root root 4096 Mar 31 00 : 52 . . - rw - r -- r -- 1 root root 830 Mar 31 00 : 52 Crunchify . jar drwxr - xr - x 3 root root 4096 Mar 31 00 : 52 . |
모든 준비가 완료되었습니다.
위와 같이 /root/crunchify/src/build
폴더 아래에 Crunchify.jar
파일이 생성되었습니다.