【问题标题】:Command: java -jar [...] Fails with Error Message命令:java -jar [...] 失败并显示错误消息
【发布时间】:2017-04-12 18:47:34
【问题描述】:

我在 Windows 7 上运行 java 1.8.0_65。 我创建了一个 JAR 并使用以下命令运行它:

java -jar printxml.jar

并得到这个错误:

错误:无法找到或加载主类 printxml.PrintXml

这是我创建 JAR 的命令:

jar cmfev manifest.txt printxml.jar printxml.PrintXml @filelist.txt

文件“manifest.txt”的内容:

类路径:C:\Users\Me\SQLSER~1\JDBC\jtds-1.3.1.jar

我通过这个命令检查了 printxml.PrintXml 类是否在 JAR 中:

jar tvf printxml.jar printxml/PrintXml.class

命令成功,即 PrintXml 类在 JAR 中。 然后,我通过以下命令检查 JAR 中的 PrintXml 类是否具有“main”方法:

javap -classpath printxml.jar -public printxml.PrintXml

命令成功,其输出包括...

public static void main(java.lang.String[]);

在网上搜索,我只找到了明显的答案,比如:

  • 您的类路径错误。
  • 您的类没有“main”方法。

谁能告诉我如何解决这个问题?

谢谢, AVI。

【问题讨论】:

  • 你能分享 PrintXml 的代码和你完整的 manifest.txt 吗?
  • 你忘记在 MANIFEST.MF 中包含主类 看这里例如docs.oracle.com/javase/tutorial/deployment/jar/appman.html
  • 不推荐在jar文件中使用绝对Class-Path,可以使用eclipse -> export -> jar file将所有文件打包成一个可执行文件jar
  • @RC - 完整的“manifest.txt 在原帖中。
  • @Maxim - 首先,我的原始帖子不包含 MANIFEST.MF 的内容。尽管如此,生成的 JAR 文件中包含的 MANIFEST.MF 确实包含一个 Main-Class 条目。

标签: java jar


【解决方案1】:

正如荷马辛普森所说:D'OH
文件“manifest.txt”中Class-Path条目的值错误!
它必须是一个 URL!
所以我把它改成:

file:/C:/Users/Me/SQLSER~1/JDBC/jtds-1.3.1.jar

嘿,快!没有更多的错误信息。现在它运行了! 感谢所有帮助过的人。 ;-)

【讨论】:

  • 我想说 RTFM 在这里很合适! :-)
猜你喜欢
  • 2016-12-07
  • 1970-01-01
  • 2017-07-28
  • 2019-11-01
  • 2019-06-10
  • 2012-11-26
  • 2015-02-02
  • 2020-12-31
  • 1970-01-01
相关资源
最近更新 更多