java.lang.ClassFormatError

Мне нужно разработать пример приложения, развернуть его в Linux и протестировать.

Проблема в том, что я получаю

Exception in thread "main" java.lang.ClassFormatError: com.tata.topSamples.QuoteData (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 java.lang.ClassLoader.loadClass(libgcj.so.7rh)
   at java.lang.ClassLoader.loadClass(libgcj.so.7rh)
   at gnu.java.lang.MainThread.run(libgcj.so.7rh)

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

В моей среде windows у меня версия 1.6, а в среде Linux версия java 1.4.2.

Как мы можем устранить эту ошибку?

2 ответа

Пожалуйста, скажите мне, как мы можем решить эту ошибку??

Либо скомпилировать с -target 1.4 а также -source 1.4 флаги или обновление до более поздней версии Java на вашем Linux-компьютере. (Обратите внимание, что использование этих флагов позволяет сохранить более свежую версию JDK на вашем компьютере с Windows).

Так:

javac -target 1.4 -source 1.4 Foo.java Bar.java

Вы должны использовать GCJ, а не (скажем) OpenJDK?

Обновите версию в своей среде Linux или соберите ее с 1.4.2 для Windows.

Другие вопросы по тегам