我試圖將HelloWorld放入.jar文件並運行它,但它不起作用。我創建的Java文件和程序類型,然後在cmd中寫道:.jar錯誤 - 無法找到或加載主類
javac HelloWorld.java
java HelloWorld
和它的工作。然後我進入
echo Main-Class: HelloWorld >manifest.txt
jar cvfm HelloWorld.jar manifest.txt HelloWorld.class
,並得到
added manifest
adding: HelloWorld.class(in = 426) (out= 288)(deflated 32%)
我便進入
java -jar HelloWorld.jar
HelloWorld.jar
和第一線工作,而第二行給了我一個錯誤的輸出:
Error: Could not find or load main class path\HelloWorld.jar
這是相同的ou當我試圖用64位jre7 \ bin,jdk1.7.0_51 \ bin,jdk1.7.0_51 \ jre \ bin以及32位的java.exe文件打開它時,我得到了(在快速關閉的窗口中) jre7 \ bin中。我卸載並重新安裝了我的jre和jdk,並重新創建了我的.class和.jar文件,但問題仍然存在。我在win8上。
編輯:我試圖做aetheria建議,但沒有運氣。我把HelloWorld.java路徑\ COM \計算器\用戶\ blrp,編譯它,和它的工作由路徑進入
java com.stackoverflow.user.blrp.HelloWorld
。然後,我創建的清單和jar:
(echo Manifest-Version: 1.0
echo Class-Path: .
echo Main-Class: com.stackoverflow.user.blrp.HelloWorld) >manifest.txt
jar cvfm HelloWorld.jar manifest.txt com\stackoverflow\user\blrp\HelloWorld.class
,並得到了輸出
added manifest
adding: com/stackoverflow/user/blrp/HelloWorld.class(in = 454) (out= 312)(deflat
ed 31%)
但儘管如此,Java的罐子的HelloWorld.jar工作,的HelloWorld.jar沒有(同樣的錯誤)。我也試過不做包裝的事情,只是清單中的類路徑,結果相同。
(另外,我通過使用一個.bat文件的問這個問題之前,解決了這個問題,但它還是會是甜的得到那個罐子的工作。)
清單應打包爲/META-INF/MANIFEST.MF解壓縮任何jar文件以查看示例例如jre/lib/rt.jar – jbaliuka
將空行打印到清單的末尾,它應該可以工作。 – jbaliuka
echo會自動創建空行(沒有空行,java -jar也不行),並且在創建jar時正確打包清單。 – Blrp