Ant и java 8 - "основная версия 52 новее 51, самая высокая основная версия, поддерживаемая этим компилятором"

Я пытаюсь обновить проект ant от java 7 до java 8.
(проект развернут в "Eclipse Kepler" с поддержкой Java ™ 8 для Eclipse Kepler SR2)

Для этого я загрузил ant 1.9.4 (в соответствии с этим сообщением http://wiki.eclipse.org/Ant/Java8) и настроил его как мой "ant home".

когда я пытаюсь скомпилировать, появилось следующее предупреждение: "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

Ответы

Ответ 1

Пожалуйста, проверьте, что tools.jar, используемый Ant, принадлежит JDK8, а не JDK7.

Окно → Настройки:

В левой панели перейдите к Ant → Runtime. На вкладке Classpath проверьте глобальные записи.

Ответ 2

Эта ошибка обычно возникает, когда есть разница в версии JDK. Пожалуйста, проверьте класс pathpath, java -version и JAVA_HOME, установленные в переменной среды.

Ответ 3

Обязательно добавьте JAVA_HOME в переменные Classpath: Window- > Java- > Build Path- > Переменные Classpath указывают на "путь/to/jdk"

Ответ 4

В Ubuntu я просто исправил это, настроив javah из jdk (работает openjdk или oracle jdk) 7-8:

$ 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
$