.jar错误 - 找不到或加载主类
我试图将HelloWorld放在.jar文件中并运行它,但它不起作用。我创建了java文件并键入程序,然后在cmd中编写:
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
这与我(在快速关闭的窗口中)获得的输出相同,当我尝试使用64位jre7\bin,jdk1.7.0_51\bin,jdk1.7.0_51\jre\bin以及32位jre7\bin中的java.exe文件打开它时。我已经卸载并重新安装了我的jre和jdk,并重新创建了我的.class和.jar文件,但问题仍然存在。我正在赢8。
编辑:我试图按照以太的建议去做,但没有运气。我把HelloWorld.java放在path\com\stackoverflow\user\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-jar HelloWorld.jar工作,HelloWorld.jar没有(同样的错误)。我也尝试不做包的事情,只是清单中的类路径,同样的结果。
(另外,我在提出问题之前通过使用.bat文件解决了这个问题,但是让那个罐子工作仍然是甜蜜的。