首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

從零開始:手把手教你打包可執行 JAR 檔案

     編輯:Java 相關知識

前言:初學者的常見痛點

對於 Java 初學者,javac 和 java 是最先接觸的命令,但即便是這兩個基礎指令,若不理解背後的類路徑與包機制,輕易就會讓人「頭皮發麻」。本文將從包的編譯運行機制切入,詳細講解如何手動打包可執行的 JAR 檔案,助你建立扎實的構建認知。

一、包機制與目錄結構的關係

Java 要求包名與目錄層級一一對應。以 Partners 包下的 Tom 和 Jerry 類為例:

// Tom.java
package Partners;
public class Tom { public String toString() { return "It's Tom"; }}

// Jerry.java
package Partners;
public class Jerry {
    public static void main(String[] args) {
        Tom tom = new Tom();
        System.out.println(tom + " and I am Jerry.");
    }
}

編譯關鍵:-d 參數

編譯時務必使用 -d 指定輸出根目錄,JVM 會自動建立包對應的目錄樹:

javac -d . Tom.java Jerry.java

執行後生成結構:

.
└── Partners
    ├── Tom.class
    └── Jerry.class

若省略 -d,需手動建立目錄並移動 .class 檔案,極易出錯。JVM 尋找類時,會將完整類名 Partners.Tom 轉為路徑 Partners/Tom.class,因此運行命令必須在包根目錄的上一層執行:

java Partners.Jerry

二、打包可執行 JAR:MANIFEST.MF 是關鍵

JAR 本質是 ZIP 壓縮包,若要雙擊或 java -jar 執行,必須在 META-INF/MANIFEST.MF 中指定主類:

Main-Class: Partners.Jerry

建立 MANIFEST.mf 檔案(注意末尾需有換行),放置於包根目錄同級:

.
├── Partners
│   ├── Tom.class
│   └── Jerry.class
└── MANIFEST.mf

打包命令

jar cvfm test.jar MANIFEST.mf Partners
  • c:建立新檔案
  • v:顯示詳細過程
  • f:指定檔案名
  • m:引入自訂 Manifest

驗證與運行

java -jar test.jar

若為 Applet 類應用,需在主類中啟動 init() 和 start(),並建立 JFrame 承載,雙擊 JAR 即可看到視窗。

三、環境變數小貼士

  • PATH:加入 JDK bin 目錄,便於直接呼叫 javac/java。
  • CLASSPATH:包含 . (當前目錄)、dt.jar、tools.jar 及第三方庫。IDE 通常自動管理,命令列開發需手動設定。

總結

掌握手動編譯、包目錄對應、Manifest 配置與 JAR 打包流程,是理解 Maven/Gradle 等構建工具底層邏輯的基石。建議初學者多實踐幾次,養成「目錄即包名」的肌肉記憶。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved