为什么无法从JAR文件加载主类清单属性?
我用这种方式创build了一个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清单头文件)
什么是“主要类清单标题”? 我如何创build它,我在哪里放?
我不确定我相信你的症状:
- 如果没有find
jre
命令,那么运行jre -cp app.jar
应该给出相同的错误 - 只要将一个JAR文件添加到类path中就不会给出你所看到的错误
我希望你看到这个错误,如果你运行:
java -jar app.jar
Main-Class头文件需要位于JAR文件的清单中 – 这是关于其他所需库的元数据。 请参阅Sun文档以了解如何创build适当的清单。 基本上你需要创build一个文本文件,其中包含这样一行:
Main-Class: MainClass
然后运行
jar cfm app.jar manifest.txt *.class
-
设置类path并编译
javac -classpath“C:\ Program Files \ Java \ jdk1.6.0_ updateVersion \ tools.jar”yourApp.java
-
创buildmanifest.txt
Main-Class:yourApp 换行符
-
创buildyourApp.jar
jar cvf0m yourApp.jar manifest.txt yourApp.class
-
运行你的App.jar
java -jar yourApp.jar
你可以运行:
java -cp .;app.jar package.MainClass
如果JAR文件中没有清单,它适用于我。
我得到这个错误,这是因为我有错误的顺序的参数:
正确
java maui.main.Examples tagging -jar maui-1.0.jar
错误
java -jar maui-1.0.jar maui.main.Examples tagging
看看教程设置应用程序的入口点 。
确保使用相应的清单文件正确创build可运行JAR文件的最简单方法是使用Eclipse为您构build。 在你的Eclipse项目中,基本上只需从菜单中selectFile / Export,然后按照提示进行操作。
这样,你就可以确定你的JAR文件是正确的,并且如果仍然存在问题,将会知道在别处查看。 在常见问题解答中详细描述了该过程。 如何为独立的SWT程序创build可执行的JAR文件? 。
我发现我在NetBeans中也有这个错误。 我希望以下是有帮助的。
- 确保当你去项目configuration你设置你打算运行的主要类。
- 做一个build设或清洁生成
- 将jar文件放在所需的位置,然后尝试:java -jar“YourProject.jar”再次在命令行。
这是我得到的问题,因为我有NetBeans中使用的其他“testing”程序,我必须确保项目configuration的运行部分下的主类正确设置。
许多祝福,约翰P
我跑时遇到同样的错误:
jar cvfm test.jar Test.class Manifest.txt
是什么解决了这个问题:
jar cvfm test.jar Manifest.txt Test.class
我的清单具有oracle文档中给出的入口点(确保在文件末尾有一个新的行字符):
主类:testing
尝试
java -cp .:mail-1.4.1.jar JavaxMailHTML
不需要有manifest
文件。
我面临同样的问题。 这个unix命令无法find主类。 这是因为JDK版本的运行时和编译时间不同。 更改java编译器版本后,通过eclipse制作jar。 以下链接帮助了我。
尝试运行在此步骤之后创build的jar,然后执行它
如果您的类path完全在清单中指定,那么您可能需要最后一个版本的Java运行时环境。 我的问题修复了,当我重新安装了8。
如果您使用eclipse,请尝试以下方法:1.右键单击项目 – >select导出2.在select导出目标中selectRunnable Jar文件3.inputjar名称并select“Package required …”(第二个单选button) – >完成
希望这可以帮助…!