jar {ctxui}[vfm0Mi] [jar-file] [manifest-file] [entry-point] [-C dir] files ...
常用選項:c創建、t列表、x解壓、u更新、v詳細輸出、f指定文件、m指定清單。
jar cf MyApp.jar -C D:/JavaProject/MyApp .
-C dir 切換目錄後再包含文件,避免路徑前綴問題。
jar tf MyApp.jar
# 或詳細模式
jar tvf MyApp.jar
jar xf MyApp.jar # 全部解壓
jar xf MyApp.jar Test.class # 只解壓指定文件
jar uf MyApp.jar Test.class
java -jar MyApp.jar
# MANIFEST.MF
Manifest-Version: 1.0
Main-Class: com.example.MainClass
jar cvfm MyApp.jar MANIFEST.MF -C bin/ .
jar cfe MyApp.jar com.example.MainClass -C bin/ .
e 選項直接設置入口點,無需單獨 Manifest 文件。
標準 jar 不支援嵌套 JAR。推薦使用構建工具:
maven-shade-plugin 或 maven-assembly-pluginShadowJar 插件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 field | Manifest 格式錯誤(如冒號後無空格) | 每行 "Key: Value",末尾換行 |
cf/tf/xf/uf/cfe 核心組合。