好的,我有一个奇怪的问题。我想将我的一个程序作为 .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 许可协议
当 java 运行 jar 时,它将查看 jar 的 META-INF 目录中的 manifest.mf 文件,并将读取其中的 MainClass 属性。如果未指定,您将收到您描述的消息。因此,请尝试将正确的 manifest.mf 包含到 jar 中。 Ant 或 Maven 等流行的 java 构建工具支持生成 manifest.mf。