JAR文件:找不到主类

时间:2012-04-13 23:15:37

标签: java executable-jar

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

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

ApertureT3CH

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

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

Main类是正确的。

EDIT3:感谢hgrey:jar没有任何问题。我可以从一个bat文件运行它,实际上不应该双击jar,对吧?但是当我点击它时我得到了错误,并且通过蝙蝠它可以正常工作。

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

感谢大家!

6 个答案:

答案 0 :(得分:9)

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

答案 1 :(得分:2)

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

答案 2 :(得分:1)

通常,您必须指定jar文件中的哪个类具有main方法。如果你检查哪个bat文件有效,你可能会看到你缺少什么来运行它。

答案 3 :(得分:0)

答案 4 :(得分:0)

清单文本文件必须以新行或回车结束。如果最后一行没有以新行或回车结束,则不会正确解析。

答案 5 :(得分:0)

还要向清单添加一个classpath属性,并为该值添加一个点。这将告诉v.m查看类的当前目录。

相关问题