ant和java 8 - "主要版本52比51更新,这是该编译器支持的最高主要版本"

时间:2014-06-08 12:54:31

标签: java eclipse ant

我正在尝试将我的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

5 个答案:

答案 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 路径。