【问题标题】:JAR file: Could not find main classJAR 文件:找不到主类
【发布时间】:2012-04-13 23:15:36
【问题描述】:

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

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

ApertureT3CH

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

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

Main 类是正确的。

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

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

谢谢大家!

【问题讨论】:

    标签: java executable-jar


    【解决方案1】:

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

    【讨论】:

    • 我检查了该清单,它很好,指定了正确的主类。
    • 您可以尝试使用java -jar jarfilename 运行它并在此处发布异常(如果您有异常)以及清单文件的内容吗?
    • 这是什么...这行得通...我不知道为什么。但这通常会执行 jar...我没有我的想法
    • 可能你的扩展协会搞砸了。尝试将其更改为路径中的相同 java。您可以使用 Windows 上的资源管理器进行操作。
    • 有可能.. 我的电脑最近经常崩溃,也许这有点搞砸了文件扩展名。谢谢,我明天去试试。
    【解决方案2】:

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

    【讨论】:

    • 注意:如果应用程序使用 jars(例如 lib/)并且缺少一些(或错误的版本),则也可能发生此错误(无论类路径如何)。
    【解决方案3】:

    通常您必须指定 jar 文件中的哪个类具有 main 方法。如果您检查 bat 文件是否有效,您可能会看到缺少的内容以便运行它。

    【讨论】:

      【解决方案4】:

      清单文本文件必须以换行符或回车符结尾。如果最后一行没有以换行符或回车符结尾,则无法正确解析。

      【讨论】:

      • 什么? jar 文件不是文本文件。你是在说清单吗?
      【解决方案5】:

      【讨论】:

        【解决方案6】:

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

        【讨论】:

          猜你喜欢
          • 2017-12-10
          • 2018-06-29
          • 2020-02-28
          • 1970-01-01
          • 2013-12-24
          • 2014-12-14
          • 1970-01-01
          • 1970-01-01
          • 2018-11-01
          相关资源
          最近更新 更多