我创建了一个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)
如何克服上述错误?
答案 0 :(得分:5)
答案 1 :(得分:0)
在可运行的jar文件中,MANIFEST.MF
文件夹中会有META-INF
。在MANIFEST.MF
内,应该有一个条目Main-Class: com.myapp.MyMainClass
。如果您使用jar命令创建一个可运行的jar文件,这将自动创建。请确保解开jar并查看此条目是否存在。