当我尝试通过Could not find the main class: org.dav.kin.Tester. Program will exit.
或 java -jar tester.jar
运行我的jar文件时,我得到:java -classpath tester.jar org.dav.kin.Tester
有谁知道错误以及如何修复它?以下是其他详细信息。感谢。
清单文件:
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
任何人都知道为什么我必须显式重新声明类路径(或者更准确地说,是常规jar )?
答案 0 :(得分:0)
您的jar文件缺少具有此名称的文件
/org/dav/kin/Tester.class
或您的MANIFEST.MF文件中有特殊字符
MANIFEST.MF文件具有特定语法。最好使用其他工具来生成它们;但是我遇到的一些细节增加了手写文件的成功,包括:
答案 1 :(得分:0)
是Tester.class'包声明org.dav.kin吗?
答案 2 :(得分:0)
您已表明您使用的是Groovy。 Groovy确实编译为Java类文件,但它仍然需要groovy运行时库。你需要确保groovy在类路径和类上。试试这个:
java -classpath tester.jar;groovy-all-1.8.0.jar org.dav.kin.Tester
答案 3 :(得分:0)
以防万一。我只是解决了同样的问题。 而不是
Class-Path: .
MANIFEST.MF
中的
应该枚举( with space )运行时需要的jar,所以它应该是这样的:
Class-Path: groovy-all-2.4.5.jar relative/my-dependent-project-artifact.jar