看板 java 關於我們 聯絡資訊
※ 引述《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