我以这种方式创建了一个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清单标题”?我如何创建它以及在哪里放置它?
答案 0 :(得分:62)
我不确定我是否相信你的症状:
jre
命令,则运行jre -cp app.jar
应该会出现同样的错误如果您运行,我希望您看到此错误:
java -jar app.jar
Main-Class标头需要位于JAR文件的清单中 - 这是关于其他所需库的元数据。有关如何创建适当的清单,请参阅Sun documentation。基本上你需要创建一个包含这样一行的文本文件:
Main-Class: MainClass
然后运行
jar cfm app.jar manifest.txt *.class
答案 1 :(得分:35)
设置类路径并编译
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
答案 2 :(得分:9)
您可以使用:
运行java -cp .;app.jar package.MainClass
如果JAR文件中没有清单,它对我有用。
答案 3 :(得分:6)
我收到了这个错误,这是因为我的参数输入错误了:
java maui.main.Examples tagging -jar maui-1.0.jar
java -jar maui-1.0.jar maui.main.Examples tagging
答案 4 :(得分:1)
确保使用相应的清单文件正确创建可运行的JAR文件的最简单方法是使用Eclipse为您构建它。在Eclipse项目中,您基本上只需从菜单中选择File / Export,然后按照提示操作。
这样,您可以确定您的JAR文件是正确的,并且如果仍有问题,将会知道在其他地方查找。该过程在 FAQ How do I create an executable JAR file for a stand-alone SWT program? 中完整描述。
答案 5 :(得分:0)
我发现我在NetBeans中也遇到了这个错误。 我希望以下内容有所帮助。
这是我遇到的问题,因为我有其他的"测试"我在NetBeans中使用的程序,我必须确保Project配置的Run部分下的Main Class设置正确。
很多祝福, 约翰P答案 6 :(得分:0)
我跑的时候遇到同样的错误:
jar cvfm test.jar Test.class Manifest.txt
是什么解决了这个问题:
jar cvfm test.jar Manifest.txt Test.class
我的清单中有oracle docs中给出的入口点(确保文件末尾有一个换行符):
Main-Class:Test
的
答案 7 :(得分:0)
尝试
java -cp .:mail-1.4.1.jar JavaxMailHTML
无需manifest
个文件。
答案 8 :(得分:0)
我遇到了同样的问题。此unix命令无法找到主类。这是因为运行时和编译时JDK版本不同。更改java编译器版本后,通过eclipse创建jar。以下链接帮助了我。
尝试运行此步骤后创建的jar,然后执行它
答案 9 :(得分:0)
如果在清单中完全指定了类路径, 也许你需要java运行时环境的最新版本。 当我重新安装jre 8时,我的问题得到解决。
答案 10 :(得分:0)
如果您使用eclipse,请尝试以下操作: 1.右键单击项目 - >选择导出 2.在选择导出目标中选择Runnable Jar文件 3.输入jar的名称并选择“Package required ...”(第二个单选按钮) - >完成
希望这有助于......!