“工作”jar归档可以通过控制台打开,但不能直接使用java.exe打开

“工作”jar归档可以通过控制台打开,但不能直接使用java.exe打开,java,Java,有人知道这个问题吗? 我想您可以用java.exe打开可执行的.jar文件 当我使用java-jar filename.jar从cmd控制台运行.jar文件时,它运行完全正常,并按预期运行。 但是,当我告诉它使用在使用console命令时开始运行的相同java.exe打开时,它给出: Error: Could not find or load main class FilePath/filename.jar Caused by: java.lang.ClassNotFoundException:

有人知道这个问题吗? 我想您可以用java.exe打开可执行的.jar文件

当我使用java-jar filename.jar从cmd控制台运行.jar文件时,它运行完全正常,并按预期运行。 但是,当我告诉它使用在使用console命令时开始运行的相同java.exe打开时,它给出:

Error: Could not find or load main class FilePath/filename.jar
Caused by: java.lang.ClassNotFoundException: FilePath/filename.jar
我首先使用JDK内置JRE中/bin/中的java.exe进行了尝试

然后我从Oracle网站下载了JRE,并使用了/bin/文件夹中的java.exe。

假设您有一个文件C:\MyProject\app.jar

在命令行上运行以下命令时:

java -jar C:\MyProject\app.jar  # This works.
它很好用。您看到的错误是执行以下操作时会出现的错误:

java C:\MyProject\app.jar       # This won't.

请注意缺少的-jar选项。解决方案是像第一个代码片段那样编写它:需要-jar选项。如果在双击它时发生这种情况,则操作系统设置会出错。如果这在脚本中发生,请修复脚本。如果这是在命令行上发生的,请使用-jar位编写它。

ClassNotFoundException:FilePath/filename.jar这是实际的消息?哇,我很惊讶你能突出显示多少以提高可读性。@Antoniosss不,不是。它使用该文件的文件路径和jar的名称。C:\Users\tehhackerOrd1337\Desktop\Cheese\u jar\Cheese.jar替换FilePath/filename.jar,而tehhackerOrd1337是我的用户名,Cheese.jar是jar文件的名称。我确实删除了默认应用程序打开.jar文件的注册表项,因为它建议使用我已经拥有的JRE版本打开.jar文件卸载。我想知道它为什么要寻找类*.jar,所以我问的是,真正的消息应该是,例如some.package.ClassNameSo你知道如何修改那些乱七八糟的操作系统设置吗?rzwitserloot我确实删除了默认应用程序的注册表项以打开.jar文件,根据:superuser.com/questions/49615/…因为它是建议用我已经卸载的JRE版本打开.jar文件。