【问题标题】:Showing 'Failed to load Main-Class manifest attribute from TestExample.jar'显示“无法从 TestExample.jar 加载主类清单属性”
【发布时间】:2012-03-02 15:52:34
【问题描述】:
Failed to load Main-Class manifest attribute from TestExample.jar 

如何解决我在尝试运行可执行jar文件时出现的上述问题?

【问题讨论】:

  • 你是从命令提示符创建你的 jar 吗?
  • 你能找到任何解决方案吗?

标签: java jar manifest manifest.mf


【解决方案1】:

您是否在指定 Main-Class 的 jar 中包含了 META-INF 文件?

命令:jar cvfm MyJarName.jar manifest.txt *.class

cvfm 的意思是“创建一个 jar;显示详细输出;指定输出 jar 文件名;指定清单文件名。”

【讨论】:

    【解决方案2】:

    您需要在 Manifest 中指定主类。这是您指定 jar 的入口点的方式。此处指定的类需要有一个main方法,在运行jar时首先执行。

    看看这个以获得很好的解释:http://docs.oracle.com/javase/tutorial/deployment/jar/appman.html

    【讨论】:

      【解决方案3】:

      Java 有两种方法可以从 JAR 文件开始。第一个指定JAR文件和主类(带有静态main(String[])方法的类):

      java -cp .../example.jar com.example.Main
      

      第二种方法使用-jar 参数(而不是-classpath 参数)。它不允许指定主类:相反,它希望在 Manifest 的 JAR 文件中指定主类。 (META-INF/MANIFEST.MF 包含一行 Main-Class: com.example.Main)。

      java -jar example.jar
      

      您的错误消息意味着您有一个未构造为可执行 JAR 文件的 JAR 文件(主类没有清单条目)。您要么需要以不同的方式构建 JAR,要么使用命令行的第一个变体启动它。顺便说一句:当您双击具有*.jar 文件扩展名的文件时,通常会使用第二种变体。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-02-05
        • 2012-03-16
        • 2013-06-03
        • 2014-09-15
        • 1970-01-01
        相关资源
        最近更新 更多