java - JAR 文件 : Could not find main class

标签 java executable-jar

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

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

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

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

主类是正确的。

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

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

谢谢大家!

最佳答案

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

关于java - JAR 文件 : Could not find main class,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10149463/

相关文章:

java - Maven无法获取可执行jar : Couldn't load main class

java - 为什么 ssh 的 Linux java -version 给出不同的结果?

java - 字符串 1 中的最小窗口包含字符串 2 中的所有字符但不包含字符串 3 中的字符

默认情况下 Java 字符串实习生

java - 每当我尝试导出到可执行 jar 时 Eclipse 都会出错

java - 在 Eclipse 中运行 jar

java - Ehcache - 为什么条目这么大?

包中带有 init() 的 Java 小程序?

java - 无法在正在执行的 JAR 上找到或加载主类

java - 如何在 list 文件中设置类路径,同时从 Eclipse 创建 JAR?