gpt4 book ai didi

java - .jar 错误 - 无法找到或加载主类

转载 作者:IT老高 更新时间:2023-10-28 20:22:55 25 4
gpt4 key购买 nike

我尝试将 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\中的 java.exe 文件打开它时得到的输出相同(在快速关闭的窗口中) bin,以及 32 位 jre7\bin。我已经卸载并重新安装了我的 jre 和 jdk 并重新创建了我的 .class 和 .jar 文件,但问题仍然存在。我是win8的。

编辑:我尝试按照 aetheria 的建议进行操作,但没有运气。我把HelloWorld.java放到path\com\stackoverflow\user\blrp下,编译好了,输入就可以了

java com.stackoverflow.user.blrp.HelloWorld

在路径中。然后我通过以下方式创建了 list 和 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 没有(同样的错误)。我也试过不做包的事情,只是 list 中的类路径,结果相同。

(另外,我在使用 .bat 文件提出问题之前解决了这个问题,但让那个 jar 工作起来还是很不错的。)

最佳答案

感谢 jbaliuka 的建议。我打开注册表编辑器(通过在 cmd 中键入 regedit)并转到 HKEY_CLASSES_ROOT > jarfile > shell > open > 命令,然后打开(默认)并更改值

"C:\Program Files\Java\jre7\bin\javaw.exe"-jar "%1"%*

"C:\Program Files\Java\jre7\bin\java.exe"-jar "%1"%*

(我刚刚删除了 javaw.exe 中的 w。)之后,您必须右键单击一个 jar -> 打开方式 -> 选择默认程序 -> 导航到您的 java 文件夹并打开\jre7\bin\java.exe (或您的 java 文件夹中的任何其他 java.exe 文件)。如果还是不行,尝试切换到javaw.exe,用它打开一个jar文件,然后再切换回来。

除了编辑注册表很危险之外,我对编辑注册表一无所知,因此您可能需要在执行此操作之前对其进行备份(在顶部栏中,文件>导出)。

关于java - .jar 错误 - 无法找到或加载主类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21650851/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com