我得到:找不到主类:org.dav.kin.Tester。程序将退出。
当我尝试通过 java -jar tester.jar
或 java -classpath tester.jar org.dav 运行我的 jar 文件时.kin.Tester
有谁知道出了什么问题以及如何解决?以下是其他详细信息。谢谢。
list 文件:
Manifest-Version: 1.0
Created-By: DKin
Class-Path: .
Main-Class: org.dav.kin.Tester
jar tf tester.jar
org/
org/dav/
org/dav/kin/
org/dav/kin/Tester.class
org/dav/kin/TesterCellRenderer.class
...
...
META-INF/
META-INF/MANIFEST.MF
更新:
如果我指定包含 groovy-all-{version}.jar
的系统类路径,Jar 文件就会运行,如下所示:java -classpath tester.jar;"%CLASSPATH% "org.dav.kin.Tester
任何人都知道为什么我必须明确地重新声明类路径(或更准确地说,groovy jar)?
最佳答案
您的 jar 文件缺少同名文件
/org/dav/kin/Tester.class
或者您的 MANIFEST.MF 文件中有特殊字符
MANIFEST.MF 文件具有特定的语法。最好使用其他工具来生成它们;然而,我遇到的一些提高手写文件成功率的细节包括:
- 始终确保每行的长度少于 72 个字符。
- 始终使用\r\n(windows 换行符),即使在非 windows 系统上也是如此。
- 验证所有空白字符都是空格。
- 验证没有不可打印的字符(htab 等)。
- 有时文件末尾的空白行会有所帮助。
关于java - Jar 找不到主类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6460025/