首页 文章

为什么它无法从JAR文件加载主类清单属性?

提问于
浏览
85

我以这种方式创建了一个JAR文件 jar cf jar-file input-files . 现在,我正试图运行它 . 运行它不起作用(找不到jre命令):

jre -cp app.jar MainClass

这也不起作用:

java -jar main.jar

(无法从main.jar加载Main-Class清单属性) .

我也发现了这一点

运行打包为JAR文件的应用程序(版本1.2 - 需要Main-Class清单标头)

什么是“Main-Class清单 Headers ”?我该如何创建它以及在哪里放置它?

11 回答

  • 0

    我遇到了同样的问题 . 此unix命令无法找到主类 . 这是因为运行时和编译时JDK版本不同 . 更改java编译器版本后,通过eclipse创建jar . 以下链接帮助了我 .

    http://crunchify.com/exception-in-thread-main-java-lang-unsupportedclassversionerror-comcrunchifymain-unsupported-major-minor-version-51-0/

    尝试运行此步骤后创建的jar,然后执行它

  • 1

    如果在清单中完全指定了类路径,则可能需要java运行时环境的 last version . 当我重新安装jre 8时,我的问题得到解决 .

  • 6

    如果您使用eclipse,请尝试以下操作:1 . 右键单击项目 - >选择导出2.在选择导出目标中选择Runnable Jar文件3.输入jar的名称并选择“Package required ...”(第二个单选按钮) - >完成

    希望这可以帮助...!

  • 35

    我不确定我是否相信你的症状:

    • 如果找不到 jre 命令,则运行 jre -cp app.jar 应该给出相同的错误

    • 只需将JAR文件添加到类路径中就不应该't give the error you'了

    如果您运行,我希望您看到此错误:

    java -jar app.jar
    

    Main-Class标头需要位于JAR文件的清单中 - 这是关于其他所需库的元数据 . 有关如何创建适当的清单,请参阅Sun documentation . 基本上你需要创建一个包含这样一行的文本文件:

    Main-Class: MainClass
    

    然后跑

    jar cfm app.jar manifest.txt *.class
    
  • 0
    • 设置类路径并编译

    javac -classpath“C:\ Program Files \ Java \ jdk1.6.0_updateVersion \ tools.jar”yourApp.java

    • 创建manifest.txt

    Main-Class:yourApp换行符

    • 创建yourApp.jar

    jar cvf0m yourApp.jar manifest.txt yourApp.class

    • 运行yourApp.jar

    java -jar yourApp.jar

  • 9

    你可以运行:

    java -cp .;app.jar package.MainClass
    

    如果JAR文件中没有清单,它对我有用 .

  • 0

    我收到了这个错误,这是因为我的参数输入顺序错误:

    正确

    java maui.main.Examples tagging -jar maui-1.0.jar
    

    错了

    java -jar maui-1.0.jar maui.main.Examples tagging
    
  • 0

    确保使用相应的清单文件正确创建可运行的JAR文件的最简单方法是使用Eclipse为您构建它 . 在Eclipse项目中,您基本上只需从菜单中选择File / Export,然后按照提示操作 .

    这样,您可以确定您的JAR文件是正确的,并且如果仍有问题,将会知道在其他地方查找 . 该过程在FAQ How do I create an executable JAR file for a stand-alone SWT program?中有详细描述 .

  • 62

    我发现我在NetBeans中也遇到了这个错误 . 我希望以下内容对您有所帮助 .

    • 确保在进入“项目配置”时设置要运行的主类 .

    • 做一个构建或清理构建

    • 将jar文件放在您希望的位置,然后在命令行再次尝试:java -jar "YourProject.jar" .

    这是我遇到的问题,因为我在NetBeans中使用了其他“测试”程序,我必须确保Project配置的Run部分下的Main Class设置正确 .

    许多祝福,John P.

  • 0

    我跑的时候遇到了同样的错误:
    jar cvfm test.jar Test.class Manifest.txt

    是什么解决了这个:
    jar cvfm test.jar Manifest.txt Test.class

    我的清单具有oracle docs中给出的入口点(确保文件末尾有一个新的行字符):
    主类:测试

  • 0

    尝试

    java -cp .:mail-1.4.1.jar JavaxMailHTML
    

    无需 manifest 文件 .

相关问题