| 操作 | 指令格式 | 範例 |
|---|---|---|
| 打包 | jar cf <jar檔> <輸入檔/目錄> | jar cf MyApp.jar com/ |
| 查看內容 | jar tf <jar檔> | jar tf MyApp.jar |
| 解壓縮 | jar xf <jar檔> | jar xf MyApp.jar |
| 更新檔案 | jar uf <jar檔> <檔案> | jar uf MyApp.jar Test.class |
| 執行 | java -jar <jar檔> | java -jar MyApp.jar |
需指定含 main 方法的類別為進入點,兩種方式:
# 建立 MANIFEST.MF
Manifest-Version: 1.0
Main-Class: com.example.MainApp
# 打包
jar cvfm MyApp.jar MANIFEST.MF com/
jar cfe MyApp.jar com.example.MainApp com/
c:建立新檔案v:顯示詳細過程f:指定輸出檔案名m:引入自訂 Manifeste:指定進入點類別 (Main-Class)0:不壓縮 (僅儲存)-C dir:切換目錄後再處理# 包含依賴庫的 Fat Jar (需手動解壓依賴 jar)
jar cf app.jar -C build/classes . -C lib/dependency1.jar . -C lib/dependency2.jar .
# 或使用 Maven/Gradle 產生 Fat Jar (推薦生產環境)
# Maven: mvn package (配置 maven-shade-plugin)
# Gradle: ./gradlew shadowJar (需 shadow plugin)
java -jar MyApp.jar arg1 arg2
# 在 main(String[] args) 中接收 args[0], args[1]
jar cfe 重打包Class-Path 屬性