導讀 | 在本文中,我們將展示如何創建Java應用程序并將其捆綁到JAR文件中,并演示如何從Linux終端執行.jar文件。 |
JAR(Java ARchive)是與平臺無關的文件格式,用于將許多Java類文件以及關聯的元數據和資源(如文本,圖像等)聚合到單個文件中進行分發。
它允許Java運行時在一個存檔文件中有效地部署整個應用程序,并提供許多好處,例如安全性,可以壓縮其元素,縮短下載時間,允許封裝和版本控制,支持可移植性。它還支持擴展包裝。
在本文中,我們將展示如何創建一個簡單的Java應用程序并將其捆綁到一個JAR文件中,并演示如何從Linux終端執行.jar文件。
為此,必須安裝java命令行工具來啟動Java應用程序,并使用-jar標志執行封裝在JAR文件中的程序。使用此標志時,指定的JAR文件是所有用戶類的源,并忽略其他類路徑設置。
如何在Linux中創建JAR文件
1.首先,為一個名為HowtoingApp的應用程序編寫一個帶有main方法的簡單Java類,用于演示目的。
$ vim HowtoingApp.java
將以下代碼復制并粘貼到HowtoingApp.java文件中。
public class HowtoingApp { public static void main(String[] args){ System.out.println(" Just executed HowtoingApp! "); } }
保存文件并關閉它。
2.接下來,我們需要使用javac和jar實用程序將類編譯并打包到JAR文件中,如圖所示。
$ javac -d . HowtoingApp.java $ ls $ jar cvf howtoingapp.jar HowtoingApp.class $ ls
3.創建howtoingapp.jar后,現在可以使用java命令執行該文件,如圖所示。
$ java -jar howtoingapp.jar no main manifest attribute, in howtoingapp.jar
從上面命令的輸出,我們遇到了一個錯誤。JVM(Java虛擬機)無法找到我們的主清單屬性,因此無法找到包含main方法的主類(public static void main(String [] args))。
JAR文件應該有一個清單,其中包含Main-Class形式的一行:classname,它定義了帶有main方法的類,該方法用作應用程序的起點。
4.要解決上述錯誤,我們需要更新JAR文件以包含清單屬性和代碼。讓我們創建一個MANIFEST.MF文件。
$ vim MANIFEST.MF
將以下行復制并粘貼到MANIFEST.MF文件中。
Main-Class: HowtoingApp
保存文件,然后使用以下命令將文件MANIFEST.MF添加到howtoingapp.jar。
$ jar cvmf MANIFEST.MF howtoingapp.jar HowtoingApp.class
5.最后,當我們再次執行JAR文件時,它應該產生預期的結果,如輸出中所示。
$ java -jar howtoingapp.jar Just executed HowtoingApp!
有關更多信息,請參閱java,javac和jar命令手冊頁。
$ man java $ man javac $ man jar