我查看了有关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)
我在 Internet 上能找到的最接近的信息是 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,我从 /usr/lib/jvm/java-6-sun/jdk1.6.0_31/bin/javah 文件夹运行 javah。
/usr/lib/jvm/java-6-sun/jdk1.6.0_31/bin/javah -classpath bin/classes -jni com.acme.ndktest.Sample
当我使用 1.6 时,我不确定为什么它说应该是 49。
更多信息 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 是否与构建这些标头有任何关系