NetBeans制作的jar文件无效

时间:2012-06-15 19:17:20

标签: java netbeans

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

2 个答案:

答案 0 :(得分:7)

NetBeans中似乎需要的东西是:

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

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

如果无法解决问题,这里的故事就更长了......

当您双击一个jar文件来运行它时,操作系统的行为就像您从命令行输入了该文件一样:

java -jar filename.jar

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

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

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

  • 在NetBeans中清理并重建项目。
  • 仔细检查你的班级是否真的在罐子里:
    • 启动命令提示符
    • 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设置为相应的类。

如果以上所有内容都已检出,则双击文件工作。

答案 1 :(得分:2)

您是否将包含项目设置为“主项目”?