尝试在unix服务器中运行jar时ClassNotFound异常

时间:2013-06-26 18:24:54

标签: java unix noclassdeffounderror

我创建了一个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)

如何克服上述错误?

2 个答案:

答案 0 :(得分:5)

应该是

java -jar my.jar

不是

java jar my.jar

答案 1 :(得分:0)

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