作者darkk6 (Mr. Pan)
看板java
標題Re: [問題] command Line 打包jar檔與執行
時間Wed Dec 10 18:04:00 2014
※ 引述《JGC18 (JGC)》之銘言:
: [編譯TestJar.class指令]
: D:\java\workspace\testProject\Lib\show>javac TestJar.java
: 產生TestJar.class
所以你的檔案在 D:\java\workspace\testProject\
Lib\show\TestJar.class
: [Manifest.mf]
: 放置路徑="D:\java\workspace\testProject\Lib\show"
: Manifest-Version: 1.0
: Sealed: true
: Main-Class: Lib.show.TestJar
: //<---有個空行
這邊你表示 Main Class 是在 Lib.show.TestJar
那麼你的 jar 檔案用 WinRAR 或者 7-zip 打開
應該要看到一個資料夾名為 Lib , 底下有 show 底下有 TestJar.class
也就是
[ JarFile.jar ]
│
└Lib/
│
└show/
│
└TestJar.class
: [打包成test.jar指令]
: D:\java\..\testProject\Lib\show>jar -cvfm test.jar manifest.mf TestJar.class
: 產生test.jar
這樣的話你的 jar 檔案裡面只會直接出現一個 TestJar.class
( 當然我這邊先不列 Manifest )
[ JarFile.jar ]
│
└TestJar.class
那麼你在執行 java -jar JarFile.jar 的時候,在 jar 裡面找不到
Lib.show.TestJar 這個 class
----------
因此我建議你把 manifest.mf 放在 D:\....\testProject\ 底下
然後在 D:\....\testProject\ 下指令:
jar -cvfm test.jar manifest.mf
Lib/
記得你要把完整的結構給包進 jar 裡面
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 223.139.17.207
※ 文章網址: http://www.ptt.cc/bbs/java/M.1418205842.A.142.html
推 JGC18: 非常感謝darkk6,把Lib一併打包,就可以得到正確結果 12/11 10:22
→ JGC18: 謝謝^^a 12/11 10:23
推 v9290026: 推講解完整 12/11 11:21