web-dev-qa-db-ja.com

Antでサポートされていないmajor.minorバージョンエラーが表示されるのはなぜですか

このターゲットをAntで実行しています。

<target name="compile" depends="init"
    description="compile the source " >
    <!-- Compile the Java code from ${src} into ${build} -->
    <javac srcdir="${src}" destdir="${build}"/>
</target>

このエラーが発生しています。

 C:\ Users\..\workspace\..\build.xml:21:Java.lang.UnsupportedClassVersionError:
 com/Sun/tools/javac/Main:サポートされていないmajor.minorバージョン51.0 

バージョンは次のとおりです。

Apache Ant(TM) version 1.8.2

JDK version is JDK 1.7.0

これがEclipseのコンパイラ設定です。

enter image description here

解決にご協力ください。

43
coder

ビルド構成ウィンドウで、ランタイムjreがjre 7ではなくjre 6に設定されました。

27
coder

コンパイル中に使用されるtools.jarがJREセットに準拠しているかどうかを確認します。 Eclipseを使用している場合は、次のようにバージョンを確認してください。
後藤ウィンドウ->設定
-左ペインの[Ant]で[ランタイム]を選択して、Antランタイムを確認します。 [クラスパス]タブの[グローバルエントリ]を確認します。フォルダーパスでバージョンを確認できます。
-左ペインで、Javaの下にインストールされているJREを確認します。バージョンを確認してください。
選択したJREが1.6.0_24で、Antランタイムのtools.jarがjdk 1.7から来ていた場合にも同じ問題が発生していました。両方が異なるバージョン1.6/1.7からのものである場合、道。通常、tools.jarは:C:\ Program Files\Java\jdk1.x.x\libにあります。同様に、必要に応じて、C:\ Program Files\Java\jdk1.x.x \をポイントしてJREを追加します

35
abksrv
  1. パスにjdkがインストールされているかどうかを確認します "C:\ Program Files\Java"そうでない場合は、JDKをマシンにインストールします

  2. Eclipseで、「build.xml」を右クリックして、Run As> External Tools Configurationを選択します

  3. [〜#〜] jre [〜#〜]」タブをクリックしてから、「Installed JREs」をクリックします>「追加」>「標準VM」>「次へ」をクリックします

  4. ディレクトリ "C:\ Program Files\Java\jdk1.7.x_xx"を選択すると、ディレクトリが "installed jres"に追加されます。

  5. 新しいJDKディレクトリを選択して、「OK」をクリックします

  6. 「Seperate JRE」ドロップダウンをクリックし、JDKバージョンを選択します "jdk1.7.x_xx」をクリックし、「Run」をクリックします

これは役立ちます:)

16
SuperSaiyan

AntのバージョンとJVMバージョンを指定する必要があります。

ant -vを実行して、Antが使用している設定を確認できます ドキュメントによる

Ant 1.8 * 必須 JDK 1.4以降。

「サポートされていないmajor.minorバージョン51.0」は、コードがJDKのバージョン用にコンパイルされた場所であり、これらのクラスを古いバージョンのJDKで実行しようとしていることを意味します。 ( こちら を参照)

9
Nicolas Modrzyk

この原因の1つは、Antビルドオプションで選択されたJREが正しくないことです。 build.xmlを右クリックし、「実行...」、「Antビルド...」の順に選択した後、構成オプションダイアログボックスの[JRE]タブで正しいJREが選択されていることを確認します。 「個別のJRE」オプションが表示されます。 [実行]をクリックする前に、適切なjdkがドロップダウンから選択されていることを確認してください。

4
THX1137

JREのJDKバージョンをインストール済みのJREにダウンロードし、代わりに使用します。
Eclipse Indigoで、antの実行構成のクラスパスタブをチェックすると、デフォルトでシステムからtools.jarが追加されていることがわかります。したがって、Java7を使用してEclipseを起動し、別のJRE6を使用してantビルドを実行すると、UnsupportedClassVersionErrorが生成されます。 JDKバージョンを追加すると、EclipseがJDKか​​らtools.jarを取得し、antタスクが正常に実行されました。

2
Aberdeen61

私は同じ問題に遭遇します。それから、Run as-> Ant build ...-> jreに入りました。使用されているjreは、デフォルトのEclipse JRE(1.6)である別個のJREであることがわかりました。その後、perferences-> installed JREsに行きました。そして、デフォルトのEclipse JREの場所をjdk(1.7)に変更します。

問題は解決しました。

2
user3864221

関連するものの、これらはどれも私の問題を解決しなかったので、他の人を助けるためにここに私の結果を追加したいと思います。
JDK6を使用して、weblogic 9.2のワークショップからHeliosに行ったユニークな状況がありました。しかし、セキュリティの専門家が私たちをJDK7に追い込み、それによって私の手はIndigoに行くことを余儀なくされました。

最後に、sysinternalsプロセスエクスプローラーを使用して、現在システムに存在するJDK6フォルダーを使用しているものがあるかどうかを確認しました。案の定、それはEclipseでした。 Eclipse.iniを開き、2行目はJDK6を参照していました。これをJDK7ディレクトリに置き換え、Eclipseを起動し、ビルドは成功しました。

1
user2275184

意図的にJava 6にビルドしようとしているが、Eclipseの他の場所にJava 7がある場合)でこのエラーが発生する場合、 Java 7 tools.jar Java 6環境。

JDK 6をインストールし(not JRE)、JRE 6を追加する必要がありますtools.jarは、JRE 7の上にリストされているビルド構成のクラスパスのユーザーエントリとしてtools.jar

0
jevon

私の場合、プロジェクトはMavenで、JDK 1.8.0、Eclipse:Keplerがあり、Eclipse MarketplaceからM2Eclipseプラグインをインストールしました。

コンパイラレベルを変更しても解決しませんでした。

最後に、Eclipse(Luna)の最新バージョン、コンパイラレベル1.7、同じM2Eclipseプラグインを使用し、問題を解決しました。

0
Itack

単にantビルド構成に移動して実行時間を確認し、jreをjdkに変更します(jdk 1.7の場合、jreは1.7になります)。

ここに画像の説明を入力

0

実行オプションに移動--->外部ツールオプションの選択---->外部ツール構成---> antビルドの選択----> build.xmlの選択---> JDKオプションがあります--- >必要なJREを選択します。