[英]Writing a Unix installer for a Jar file
我已經編寫了一個Java應用程序,並且創建了一個可執行的Jar文件,該文件可以通過java -jar myJar.jar
成功運行我的應用程序。 我有一個名為launchMyProgram
的可執行外殼腳本,用於包裝此Jar的啟動(並提供launchMyProgram
等各種標志)。 我的目標輸出目錄如下所示:
$ ls /path/to/MyProject/target/
archive-tmp/ classes/ myJar.jar
我為僅限Unix的應用程序編寫安裝程序的標准方法是什么? 我以為將launchMyProgram
可執行文件放在/ usr / local / bin中是正確的。 但是我應該把Jar文件放在哪里? 我應該在程序文件的某個位置創建自己的子目錄嗎? 我是否需要將上述輸出中的classes
目錄復制到與Jar相同的目錄中? 這將通過Makefile運行,因此用戶當然可以覆蓋我的選擇。
基本上,我希望用戶能夠運行make && make install
,並能夠使用launchMyProgram
運行我的應用程序,並且我希望將文件(一個jar,一個“ classes”文件夾和一個shell腳本)放在最典型的地方可能。
最好的方法之一已經被重新發明了很多,但不幸的是還不是標准的。
由於JAR是一個ZIP文件,允許帶有任意前綴,因此您可以在jar中添加啟動程序shell腳本,將其標記為可執行文件,然后將其視為獨立的二進制文件。
$ echo '#!/bin/bash' > launchMyProgram
$ echo 'exec java -cp "${0}" com.example.program.Main "${@}"' >> launchMyProgram
$ cat myJar.jar >> launchMyProgram
$ chmod +x ./launchMyProgram
$ ./launchMyProgram
Hello, world!
有關更多詳細信息,請參見“ 簡單易用的Jar ”。
您應該能夠將classes/
文件夾中的所有內容打包到jar中,並且仍然可以正常工作。
另外,如果您想為用戶提供RPM或DEB軟件包或其他東西, fpm
確實很容易。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.