这就是我得到的:
[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。但这应该不重要吗?
答案 0 :(得分:5)
您使用比Linux机器上版本更新的Java版本编译了jar。
答案 1 :(得分:1)
你应该这样做:
java -jar ./kioskmenu.jar
注意-
。
如果你只是给java jar ./kioskmenu.jar
,那么JVM正试图找到一个名为jar
的类并尝试将./kioskmenu.jar
作为参数传递给它 - 这显然不是你想要的。