0

我为我的 Java 项目创建了一个可执行 jar,我测试了这个 jar,它在 Windows 中按预期工作,但是当我尝试在 Unix 中运行同一个 jar 时。

java jar my.jar

..它向我抛出以下错误:

Exception in thread "main" java.lang.NoClassDefFoundError: jar
Caused by: java.lang.ClassNotFoundException: jar
        at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:321) 
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:266)

如何克服上述错误?

4

2 回答 2

5

它应该是

java -jar my.jar

不是

java jar my.jar

于 2013-06-26T18:25:52.813 回答
0

MANIFEST.MF在一个可运行的 jar 文件中,里面会有一个META-INF文件夹。里面MANIFEST.MF应该有一个入口Main-Class: com.myapp.MyMainClass。如果您使用 jar 命令创建可运行的 jar 文件,这将自动创建。为了确定,解压 jar 并查看是否存在此条目。

于 2013-06-28T16:07:56.763 回答