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.