双击.jar文件时"无法找到主类"

aar*_*rkk 29 java command-prompt mainclass javaw

第一:我意识到这个问题应该很简单,很多人似乎都经历过这个问题.但是,看来我的问题可能与现有帖子略有不同.

我正在使用NetBeans来编译Java应用程序.完成构建后,输出会正确进入dist \文件夹.那里有jar文件.如果我转到命令行,请导航到该文件夹​​,然后调用以下命令:

java -jar Prosperity.jar

一切正常.显然,应用程序的名称是Prosperity.以下命令也可以正常工作:

javaw -jar Prosperity.jar

但是,双击.jar文件会显示消息:"找不到主类:",然后提供.jar文件的路径.我已经检查过一百次.jar文件中存在META-INF文件夹,并且其中存在一个具有正确主类名称的MANIFEST.MF.我还检查了.jar文件中是否存在主类(App.class).class文件.

所以问题是:双击文件和运行javaw之间的区别是什么?它真的令人沮丧,它不会只是运行!

谢谢你可以给我的任何方向,我是tearin'我的头发在这里!

Jor*_*ner 25

也许你的文件关联搞砸了.在命令提示符下,尝试运行

ftype | find "jarfile"
Run Code Online (Sandbox Code Playgroud)

在我的64位Windows 7计算机上,显示

jarfile="C:\Program Files (x86)\Java\jre6\bin\javaw.exe" -jar "%1" %*
Run Code Online (Sandbox Code Playgroud)

你也可以改变它ftype:

ftype jarfile="C:\Program Files (x86)\Java\jre6\bin\javaw.exe" -jar "%1" %*
Run Code Online (Sandbox Code Playgroud)


tat*_*tic 11

刚发现这篇帖子......

如果只有在双击jar文件而不是cmd启动时遇到问题,可能是因为JRE的版本错误(6代替7).

只需更改regedit中的值:

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\jarfile\shell\open\command] "C:\Program Files (x86)\Java\jre6\bin\javaw.exe" -jar "%1" %*

至 :

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

如果更新此值,应该没有问题.


注意:在Windows上切换32位和64位版本:

- > "C:\Program Files\Java\jre7\bin\javaw.exe" -jar "%1" %*将使用64位版本的JRE - > "C:\Program Files (x86)\Java\jre7\bin\javaw.exe" -jar "%1" %*将使用32位版本的JRE