Я просмотрел различные сообщения о сбое javah, но я не нашел ничего с этой ошибкой, которую я получаю:
error: cannot access com.acme.ndktest.Sample
bad class file: bin/classes/com/acme/ndktest/Sample.class
class file has wrong version 50.0, should be 49.0
Please remove or make sure it appears in the correct subdirectory of the classpath.
com.sun.tools.javac.util.Abort
at com.sun.tools.javac.comp.Check.completionError(Check.java:169)
at com.sun.tools.javadoc.DocEnv.loadClass(DocEnv.java:149)
Самая близкая информация, которую я смог найти в Интернете, это http://yonghoon.wikidot.com/ndk#toc4< /а>
Каждый новый выпуск JVM увеличивает номер версии файла класса. В приведенном ниже списке показаны известные мне номера версий классов Java 6: Версия 50.0 Java 5 (1.5): Версия 49.0 Java 1.4.2: Версия 48.0
Я не понимаю, я использую 1.6, Eclipse настроен на соответствие JDK 1.6, я запускаю javah из папки /usr/lib/jvm/java-6-sun/jdk1.6.0_31/bin/javah.
/usr/lib/jvm/java-6-sun/jdk1.6.0_31/bin/javah -classpath bin/classes -jni com.acme.ndktest.Sample
Я не уверен, почему он говорит, что должно быть 49, когда я использую 1,6.
Дополнительная информация javac -version -> javac 1.6.0_31 javap -v -classpath bin/classes com.acme.ndktest.Sample | версия grep дополнительная версия: 0, основная версия: 50
В /etc/alternatives большинство элементов java указывают на java-6-sun, например java и javac. Но javaws указывает на java-6-openjdk-amd64.
Я запускаю Eclipse 3.7. Также Ant имеет какое-либо отношение к созданию этих заголовков.
javac -version
(без полного пути)? Мне кажется, что цепочка инструментов java несовместима. Чтобы проверить версии ваших файлов классов, вы можете запуститьjavap -v -classpath bin/classes com.acme.ndktest.Sample | grep version
. В Linux вы можете проверить/etc/alternatives
ссылки. - person j.holetzeck   schedule 24.03.2013