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

Java 命令行打包、執行與管理 JAR 檔案完整指南

     編輯:Java 相關知識

JAR 基本命令格式

jar {ctxui}[vfm0Mi] [jar-file] [manifest-file] [entry-point] [-C dir] files ...

常用選項:c創建、t列表、x解壓、u更新、v詳細輸出、f指定文件、m指定清單。

核心操作範例

1. 打包整個項目目錄

jar cf MyApp.jar -C D:/JavaProject/MyApp .

-C dir 切換目錄後再包含文件,避免路徑前綴問題。

2. 查看 JAR 內容

jar tf MyApp.jar
# 或詳細模式
jar tvf MyApp.jar

3. 解壓 JAR

jar xf MyApp.jar           # 全部解壓
jar xf MyApp.jar Test.class # 只解壓指定文件

4. 更新 JAR(替換/新增文件)

jar uf MyApp.jar Test.class

5. 執行可執行 JAR

java -jar MyApp.jar

創建可執行 JAR(指定主類)

方法一:Manifest 文件

# MANIFEST.MF
Manifest-Version: 1.0
Main-Class: com.example.MainClass
jar cvfm MyApp.jar MANIFEST.MF -C bin/ .

方法二:命令行直接指定 (JDK 6+)

jar cfe MyApp.jar com.example.MainClass -C bin/ .

e 選項直接設置入口點,無需單獨 Manifest 文件。

進階技巧

包含依賴庫(Fat JAR)

標準 jar 不支援嵌套 JAR。推薦使用構建工具:

  • Maven: maven-shade-plugin 或 maven-assembly-plugin
  • Gradle: ShadowJar 插件

多版本 JAR (JDK 9+)

jar --create --file mr.jar -C classes/java8 . --release 11 -C classes/java11 .

常見問題排查

現象原因解決
no main manifest attribute缺少 Main-Class用 cfe 或提供 Manifest
ClassNotFoundException依賴類未打包Fat JAR 或 classpath 執行
Invalid header fieldManifest 格式錯誤(如冒號後無空格)每行 "Key: Value",末尾換行

總結

  • 開發階段:IDE 一鍵導出或構建工具打包。
  • 命令行調試:掌握 cf/tf/xf/uf/cfe 核心組合。
  • 生產部署:優先使用 Maven/Gradle 生成 Fat JAR,確保依賴完整。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved