NetBeans制作的jar文件无效

Blu*_*ire 2 java netbeans

所以我使用带有NetBeans的swing GUI制作了这个(非常简单的)程序,然后我点击了build来制作一个jar文件.当我通过双击它来运行它时,它告诉我它找不到主类,经过检查后,我确信它肯定存在.但是,当我从命令提示符运行它时,它完美地工作.这种奇怪行为的任何容易确定的原因(如果你想要源代码,我可以在这里发布)?

csd*_*csd 7

NetBeans中似乎需要的东西是:

  • 该项目必须是主项目(通过在项目列表中右键单击它).
  • 您必须在项目属性中设置主类.(右键单击,属性,运行,主类.)

然后,当您右键单击项目并执行"清理并构建"时,jar将内置到dist子目录中.

如果这不能解决问题,这里有一个更长的故事......

双击jar文件以运行它时,操作系统就像从命令行输入的那样:

java -jar filename.jar
Run Code Online (Sandbox Code Playgroud)

(当你说它从命令行为你工作时,这就是你输入的内容吗?)

此时,Java可执行文件在名为jar的jar中查找文件META-INF/MANIFEST.MF.然后在该文件的内容中,它查找属性的值,Main-Class.最后,它在jar中查找该名称的类并运行其静态main(String[])方法.

因此,如果您的jar无法运行,您可以执行以下操作来调试正在进行的操作:

  • 在NetBeans中清理并重建项目.
  • 仔细检查你的类实际上是在jar中:
    • 启动命令提示符
    • cd进入dist项目的子目录.
    • 使用命令jar tf filename.jar列出其中的内容.
  • 仔细检查MANIFEST.MF文件是否正确:
    • 再次在命令提示符下
    • cd进入dist目录.
    • 使用命令jar xf filename.jar META-INF/MANIFEST.MF来提取清单.
    • 查看该文件的内容(例如type META-INF\MANIFEST.MF)并确保Main-Class设置为适当的类.

如果以上所有内容都签出,则双击该文件应该可以正常工作.