web-dev-qa-db-ja.com

ant and Java 8-"メジャーバージョン52は51よりも新しい。このコンパイラがサポートする最高のメジャーバージョン"

AntプロジェクトをJava 7からJava 8。
(「Eclipse Kepler」と「Eclipse Kepler SR2へのJava™8サポート」でデプロイされたプロジェクト)

そのために、私は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構成では、コンパイラをワークスペースと同じコンパイラに定義します。)

何が起こったのでしょうか?

どうもありがとう。

エヤル

15
Eyal leshem

Antが使用するtools.jarがJDK7ではなくJDK8のものであることを確認してください。

ウィンドウ->設定:

左ペインで、Ant-> Runtimeに移動します。 [クラスパス]タブで、グローバルエントリを確認します。

15
manouti

このエラーは通常、JDKバージョンに違いがある場合に発生します。クラスパス、Java -versionおよび環境変数に設定されているJava_HOMEを確認してください。

4
Amz

Ubuntuでは、jdkからjavahを構成することで修正しました(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
$ 
0
林果皞

Classpath変数にJava_HOMEを追加してください:Window-> Java-> Build Path-> Classpath variables point to the "path/to/jdk"

0
sangress