我正在尝试将我的ant项目从java 7升级到java 8 (该项目部署在“Eclipse Kepler”中,“Eclipse™Kepler SR2支持Java™8”)
为此我下载了ant 1.9.4(根据这篇文章http://wiki.eclipse.org/Ant/Java8),并将其配置为我的“蚂蚁家”。
当我尝试编译时得到以下警告:
"major version 52 is newer than 51, the highest major version supported by this compiler.
[javac] It is recommended that the compiler be upgraded."
但为工作区定义的编译器是1.8。 (在ant配置中,它将编译器定义为工作空间的相同编译器。)
有什么想法发生了吗?
非常感谢。
Eyal
答案 0 :(得分:15)
请检查Ant使用的tools.jar是来自JDK8而不是JDK7。
窗口 - >首选项:
在左侧窗格中,转到Ant - >运行。在Classpath选项卡中,选中Global Entries。
答案 1 :(得分:4)
当JDK版本存在差异时,通常会出现此错误。请检查环境变量中设置的classpath,java -version和JAVA_HOME。
答案 2 :(得分:0)
确保在Classpath变量中添加JAVA_HOME:Window-> Java-> Build Path-> Classpath变量指向" path / to / jdk"
答案 3 :(得分:0)
在Ubuntu中,我只是通过从jdk(openjdk或oracle jdk都可以)从7到8配置javah
来修复它:
$ javah -classpath . -d jni/ NativeSorting
./NativeSorting.class: major version 52 is newer than 51, the highest major version supported by this compiler.
It is recommended that the compiler be upgraded.
$ sudo update-alternatives --config javah
There are 4 choices for the alternative javah (providing /usr/bin/javah).
Selection Path Priority Status
------------------------------------------------------------
0 /usr/lib/jvm/java-8-openjdk-amd64/bin/javah 1081 auto mode
* 1 /usr/lib/jvm/java-7-openjdk-amd64/bin/javah 1071 manual mode
2 /usr/lib/jvm/java-8-openjdk-amd64/bin/javah 1081 manual mode
3 /usr/lib/jvm/jdk1.7.0_80/bin/javah 1000 manual mode
4 /usr/lib/jvm/jdk1.8.0_131/bin/javah 1000 manual mode
Press <enter> to keep the current choice[*], or type selection number: 2
update-alternatives: using /usr/lib/jvm/java-8-openjdk-amd64/bin/javah to provide /usr/bin/javah (javah) in manual mode
$ javah -classpath . -d jni/ NativeSorting
$
答案 4 :(得分:0)
添加到所有其他答案:
为我解决这个问题的是删除 PATH
环境变量中冗余/不同的 java 路径。