.jar работает в Windows, но не в Linux (stacktrace) - PullRequest
3 голосов
/ 15 августа 2011

Вот что я получаю:

[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 ]

5 голосов
/ 15 августа 2011

Вы скомпилировали банку с более новой версией Java, чем та, что установлена ​​на вашем Linux-компьютере.

1 голос
/ 15 августа 2011

Вы действительно должны делать это:

java -jar ./kioskmenu.jar

Обратите внимание на -.

Если вы просто дадите java jar ./kioskmenu.jar, JVM пытается найти класс с именем jar и пытается передать в качестве аргумента ./kioskmenu.jar - что явно не то, что вы хотите.

...