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

Java 命令列 JAR 打包、執行與簽名完整指南

     編輯:Java 程式設計入門

基本 JAR 指令

操作指令格式範例
打包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

建立可執行 JAR (Main-Class)

需指定含 main 方法的類別為進入點,兩種方式:

方式一:MANIFEST.MF 檔案

# 建立 MANIFEST.MF
Manifest-Version: 1.0
Main-Class: com.example.MainApp

# 打包
jar cvfm MyApp.jar MANIFEST.MF com/

方式二:命令列直接指定 (JDK 8+)

jar cfe MyApp.jar com.example.MainApp com/

常見參數說明

  • c:建立新檔案
  • v:顯示詳細過程
  • f:指定輸出檔案名
  • m:引入自訂 Manifest
  • e:指定進入點類別 (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]

故障排除

  • no main manifest attribute:未指定 Main-Class,用 jar cfe 重打包
  • ClassNotFoundException:Classpath 遺漏依賴,檢查 Manifest Class-Path 屬性
  • 無法執行:檢查 JRE 版本、檔案關聯、執行權限
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved