2014-06-08 2 views
1

Java 응용 프로그램을 작성했으며 java -jar myJar.jar으로 내 응용 프로그램을 성공적으로 실행하는 실행 가능 Jar 파일을 작성했습니다. 나는 launchMyProgram이라는 실행 쉘 스크립트를 가지고 있는데이 쉘은 Jar의 시작을 감싸고 --help와 같은 다양한 플래그를 제공한다. 내 목표 출력 디렉토리는 다음과 같습니다 :Jar 파일 용 Unix 설치 프로그램 작성

$ ls /path/to/MyProject/target/ 
archive-tmp/  classes/   myJar.jar 

유닉스 전용 응용 프로그램의 설치 프로그램을 작성하는 표준 방법은 무엇입니까? 나는/usr/local/bin에 launchMyProgram 실행 파일을 놓을 것이 틀림 없다고 가정합니다. 하지만 Jar 파일은 어디에 두어야합니까? 내 프로그램의 파일을 위해 내 자신의 서브 디렉토리를 만들어야 하나? 위 출력에서 ​​classes 디렉토리를 Jar 파일과 동일한 디렉토리에 복사해야합니까? 이것은 Makefile을 통해 실행되므로 물론 사용자가 내 선택을 무시할 수 있습니다.

기본적으로 사용자가 make && make install을 실행하고 launchMyProgram으로 내 응용 프로그램을 실행할 수 있기를 원하며 내 파일 (한 병, '클래스'폴더 및 셸 스크립트)을 가능한 가장 일반적인 장소.

답변

0

가장 좋은 방법 중 하나는 여러 번 재발 명되었지만 아직 불행히도 표준이 아닙니다.

JAR 파일은 임의의 접두어를 가질 수있는 ZIP 파일이므로 jar 파일에 실행 파일 쉘 스크립트를 추가하고 실행 파일로 표시하여 독립 실행 형 바이너리로 처리 할 수 ​​있습니다.

$ echo '#!/bin/bash' > launchMyProgram 
$ echo 'exec java -cp "${0}" com.example.program.Main "${@}"' >> launchMyProgram 
$ cat myJar.jar >> launchMyProgram 
$ chmod +x ./launchMyProgram 
$ ./launchMyProgram 
Hello, world! 

자세한 내용은 Simple & Easy Executable Jars을 참조하십시오.

classes/ 폴더의 모든 내용을 병에 넣을 수 있고 계속 작동 할 수 있어야합니다. 당신이 사용자의 RPM이나 DEB 패키지 또는 무언가를 제공하려는 경우 또한


fpm는 정말 쉽습니다.