【发布时间】: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 条目。