.jar适用于Windows但不适用于Linux(stacktrace)

时间:2011-08-15 15:19:01

标签: java linux jar rhel

这就是我得到的:

[user@localhost KioskMenu]$ java -jar ./kioskmenu.jar 
Exception in thread "main" java.lang.ClassFormatError: KioskMenu (unrecognized class file version)
   at java.lang.VMClassLoader.defineClass(libgcj.so.7rh)
   at java.lang.ClassLoader.defineClass(libgcj.so.7rh)
   at java.security.SecureClassLoader.defineClass(libgcj.so.7rh)
   at java.net.URLClassLoader.findClass(libgcj.so.7rh)
   at gnu.gcj.runtime.SystemClassLoader.findClass(libgcj.so.7rh)
   at java.lang.ClassLoader.loadClass(libgcj.so.7rh)
   at java.lang.ClassLoader.loadClass(libgcj.so.7rh)
   at gnu.java.lang.MainThread.run(libgcj.so.7rh)
[user@localhost KioskMenu]$ 

我唯一注意到的是我的RHEL使用的是“免费”版本的Java。但这应该不重要吗?

2 个答案:

答案 0 :(得分:5)

您使用比Linux机器上版本更新的Java版本编译了jar。

答案 1 :(得分:1)

你应该这样做:

java -jar ./kioskmenu.jar

注意-

如果你只是给java jar ./kioskmenu.jar,那么JVM正试图找到一个名为jar的类并尝试将./kioskmenu.jar作为参数传递给它 - 这显然不是你想要的。

相关问题