我试图将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