簡體   English   中英

為Jar文件編寫Unix安裝程序

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM