JAR 文件:找不到主类

新手上路,请多包涵

好的,我有一个奇怪的问题。我想将我的一个程序作为 .jar 文件运行,但是当我通过双击打开它时,我收到一条错误消息,如“找不到主类,程序正在关闭”。我很确定我做的一切都是正确的,罐子应该能正常工作。我也尝试了其他程序,每个程序都一样。 (我正在通过 BlueJ 创建 .jar)当我通过 .bat 运行它们时没有问题。最奇怪的事情来了:.jar 已经工作了一段时间(我猜是一两个月),我不记得做过什么不同的事情。它是相同的 BlueJ 版本。好吧,也许 Java 更新了,有些东西搞砸了……我用谷歌搜索,但找不到解决方案。 (有些人似乎有类似的问题,似乎只有他们不能运行他们的 .jar;他们上传了它们,其他人说 .jar 运行良好。)可能是什么问题?我该如何解决?

我真的很感激这里的一些帮助。谢谢 :)

编辑:好吧,伙计们,你们让我不确定了。 Imma 在这个邪恶的时间(凌晨 1:34)再次检查清单:P

EDIT2:这是我的 MANIFEST.MF 清单版本:1.0 类路径:主类:LocalChatClientGUI [空行] [空行]

主类是正确的。

EDIT3:感谢 hgrey:罐子没有问题。我可以从一个 bat 文件运行它,这实际上应该与双击 jar 没有什么不同,对吧?但是单击它时出现错误,并且通过 bat 可以正常工作。

EDIT4:我终于解决了这个问题。我重新安装了 JRE,现在它可以工作了,尽管我看不到任何版本差异。

谢谢大家!

原文由 FR24601 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 643
2 个回答

当 java 运行 jar 时,它将查看 jar 的 META-INF 目录中的 manifest.mf 文件,并将读取其中的 MainClass 属性。如果未指定,您将收到您描述的消息。因此,请尝试将正确的 manifest.mf 包含到 jar 中。 Ant 或 Maven 等流行的 java 构建工具支持生成 manifest.mf。

原文由 hgrey 发布,翻译遵循 CC BY-SA 3.0 许可协议

您的程序是否使用任何外部 jar 文件?如果是这样,您需要在清单文件和主类中设置类路径属性。

原文由 haskovec 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题