如何在 Linux 終端建立和執行 .Jar 檔案?


在 Linux 中建立和執行 .jar 檔案是一個簡單的過程,它將 Java 原始碼的編譯以及類檔案和資源打包到單個檔案結合在一起。使用終端,您可以輕鬆地編譯程式碼,建立 .jar 檔案,使其可執行,並輕鬆執行您的 Java 應用程式。

JAR 格式,也稱為 Java ARchive,提供了一種靈活且高效的方式,可以將 Java 類檔案、資源和元資料打包到單個、平臺無關的檔案中。此格式的目的是簡化 Java 執行時的分發和部署過程,同時還提供一些關鍵優勢,例如增強的安全性、壓縮以加快下載速度、對包密封和版本控制的支援以及可移植性。此外,JAR 檔案還可以用於打包 Java 擴充套件。

在本文中,我們將指導您完成建立簡單 Java 應用程式的過程,然後演示如何將其組裝到 JAR 檔案中,使其準備好進行分發。最後,我們將向您展示如何使用 java 命令列工具和 -jar 標誌從 Linux 終端執行 JAR 檔案。需要注意的是,您需要安裝 java 命令列工具以及 -jar 標誌才能執行封裝在 JAR 檔案中的程式。當使用此標誌時,指定的 JAR 檔案成為所有使用者類的來源,並且任何其他類路徑設定都將被忽略。

  • 首先,我們將從建立一個包含 main 方法的基本 Java 類開始。此 Java 類將作為示例來演示在 Linux 終端中建立和執行 .jar 檔案所涉及的步驟。在本例中,我們將我們的 Java 應用程式命名為“MyApp”。

$ vim MyApp.java
  • 將以下程式碼合併到 MyApp.java 檔案中。

public class MyApp{
	public static void main(String[] args){
		System.out.println("My Java Applicatoion");
	}
}
  • 編譯 Java 原始碼後,下一步是使用 javac 和 jar 實用程式將其打包到 JAR 檔案中,如下面的步驟中所述。

$ javac -d . MyApp.java
$ ls
$ jar cvf myapp.jar MyApp.class
$ ls

javac MyApp.java
jar cf myapp.jar MyApp.class
chmod +x myapp.jar
java -jar myapp.jar
  • 現在 myapp.jar 檔案已生成,可以使用簡單的“java”命令執行它,如下一步所示。

$ java -jar myapp.jar

no main manifest attribute, in myapp.jar

上一步中遇到的錯誤突出了在 .jar 檔案中擁有正確清單的重要性。JVM 需要指定一個主類,該類充當應用程式的入口點。如果沒有此資訊,JVM 無法在 .jar 檔案中找到 main 方法,而 main 方法是執行應用程式所必需的。要解決此錯誤,必須向清單檔案新增 Main-Class 屬性,該屬性指定應用程式的主類。此行應採用“Main-Class: classname”的形式,其中 classname 是主類的完全限定名稱。透過在清單中包含此資訊,JVM 將準確知道在哪裡可以找到 main 方法,從而使應用程式能夠順利執行。

  • 解決此錯誤的方法是更新 JAR 存檔以包含清單屬性以及程式碼。這可以透過建立一個 manifest.mf 檔案來完成,該檔案將作為 JAR 檔案的藍圖。

$ vim manifest.mf

“為了向 JAR 檔案新增必要的清單屬性,只需將指定的行復制並貼上到 manifest.mf 檔案中。”

Main-Class:  MyApp

有了 manifest.mf 檔案,現在就可以將其整合到 myapp.jar 中。這可以透過執行以下命令來完成,該命令會將 manifest.mf 檔案包含到存檔中。

$ jar cvmf manifest.mf myapp.jar MyApp.class
  • 執行更新後的 JAR 檔案後,應生成並顯示所需的結果,標誌著問題已成功解決。

$ java -jar myapp.jar

My Java App

要深入瞭解,請查閱 java、javac 和 jar 命令的手冊頁。

$ man java
$ man javac
$ man jar

結論

總而言之,JAR 檔案格式為將多個 Java 類檔案、資源和元資料捆綁到單個、平臺無關的檔案中以進行分發提供了一種實用的解決方案。藉助 java 命令列工具和 -jar 標誌,您可以輕鬆部署完整的 Java 應用程式並享受其優勢,包括安全性、壓縮和可移植性。透過按照本指南中概述的步驟操作,您現在對如何在 Linux 終端建立和執行 JAR 檔案有了深刻的瞭解。這些知識將使您能夠自信地輕鬆分發和部署您的 Java 應用程式。

更新於: 2023-07-27

2K+ 瀏覽量

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告