2013-03-24 44 views
0

我已經看過了各個崗位關於JAVAH失敗,但我還沒有發現這個錯誤,我得到任何東西:NDK JAVAH失敗:類文件版本錯誤50.0,應該是49.0

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, 我正在從/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斌/班-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 /替代大部分的Java項目指向的java-6-太陽像Java和javac 但javaws的點的java-6-的OpenJDK-AMD64

我運行Eclipse 3.7 也做螞蟻有什麼與建設這些頭

+0

什麼是/usr/lib/jvm/java-6-sun/jdk1.6.0_31/bin/javah -version輸出?你確定NDK支持Java 6嗎? – nitind 2013-03-24 04:47:11

+0

javah version「1.6.0_31」 – pt123 2013-03-24 08:56:09

+0

'javac -version'的輸出是什麼(沒有完整路徑)?在我看來,Java工具鏈不一致。要檢查你的類文件是哪個版本,你可以運行'javap -v -classpath bin/classes com.acme.ndktest。示例| grep版本'。在Linux上你可能想要檢查'/ etc/alternatives'鏈接。 – 2013-03-24 11:32:35

回答

0

的問題是,一些包已經被安裝到 在/ usr/JAVA /包裝/ lib中/被其他應用程序內線。

這些被javac用來查看決定使用的最大可能的jdk版本。 所以這樣做會失敗

javac SomeFile.java -target 1.6 

給予此錯誤消息javac的1.6版不能夠建立目標1.6

當你詳細選項運行它 的javac -verbose -version SomeFile.java

它會列出在/ usr/JAVA /包/ lib/ext目錄中的所有文件

所有文件移出的/ usr/JAVA /包裝/ lib中/ E後xt

它編譯得很好。

相關問題