web-dev-qa-db-ja.com

Antは間違ったJavaバージョンを使用しています

Ant 1.7.0を使用し、Java_HOMEにあるJava 1.6をインストールしました。

Java 1.5を使用してプロジェクトをビルドしたいので、Java_HOMEをエクスポートして、Java 1.5ディレクトリ。

Java -version

「1.5」と表示されます。 Antを実行すると、Java 1.6。

66
Diogo Ribeiro

この問題が発生したのは、デフォルトのJREが1.6のときに最初にビルドファイルをant-viewに追加したためです。

プロジェクト固有のJREはなく、デフォルトを1.5に変更しました。Eclipseが1.5で実行されていて、Java_HOMEも1.5でした。コマンドラインからantターゲットを実行するにはJRE 1.5を使用しましたが、Eclipse内では1.6を使用しました。

Antターゲットを右クリックし、「実行...」を選択して、「JRE」タブの下のJREを変更する必要がありました。この設定は、後続の実行で記憶されます。

71
Lee Kowalkowski

Eclipseの場合:

  • Build.xmlを右クリックします

  • 「実行」をクリックし、「外部ツール構成...」をクリックします

  • タブを選択[〜#〜] jre [〜#〜]。使用しているJREを選択します。

タスクを再実行します。これで問題ありません。

29
bram000

antマニュアル によると、Java_HOMEの設定は機能するはずです-変更された設定はantに表示されますか?

または、JAVACMD変数を使用できます。

19

Javacタグのtargetプロパティとsourceプロパティを使用して、ターゲットランタイムを設定できます。以下の例は、バージョン1.4以降をサポートするコンパイラで、ソースコードをターゲットバージョン1.4にコンパイルします。

<javac compiler="classic" taskname="javac" includeAntRuntime="no" fork=" deprecation="true" target="1.4" source="1.4" srcdir="${src}" destdir="${classes}">

注:「srcdir」と「destdir」は、ビルドスクリプトの別の場所で設定されたプロパティ値です。 <property name="classes" value="c:/classes" />

15
simon_d

Antを冗長モードで実行します:ant -vそして手がかりを探します。

15
Robert Munteanu

Eclipse IDEを使用している場合、次の手順でそれを実現できます。

  1. Antビルドファイルでタスクを右クリックします(build.xml)。

  2. 「Run As」の上にマウスを置き、「External Tool Configurations ...」をクリックします。

  3. 「引数」に以下を追加します。

    -Dant.build.javac.target=1.5 -Dant.build.javac.source=1.5
    
10
Sheng Chien

使用する互換性のレベル(1.4、1.5、1.6)をjavacタスクで指定することもできます。「ソース」レベル値と「ターゲット」レベル値を設定し、こちらのドキュメントを確認できます。 Javacタスクドキュメント

5
Billy

これはかなり古い質問ですが、今後の参考のためにメモを追加します。

同様の問題があり、PATH変数のエクスポートの順序を変更して修正しました。

たとえば、次のようにして文字列をPATHに連結する方法を使用していました(これは単なる例です)。

$> export PATH='$PATH:'$Java_HOME

変数PATHにすでにJavaが含まれている場合、最後の値は無意味になるため、順序が重要になります。これを解決するには、まず変数を追加し、次にPATH 。

この考えに従って、ANT_HOMEをエクスポートする順序を逆にしました。 ANT_HOMEの前にJava_HOMEを追加します。

これは偶然かもしれませんが、私にとってはうまくいきました。

5
flavio_yama

ビルドファイル:

<target name="print-version"> 
   <echo>Java/JVM version: ${ant.Java.version}</echo> 
   <echo>Java/JVM detail version: ${Java.version}</echo> 
</target>

出力:

[echo] Java/JVM version: 1.5
[echo] Java/JVM detail version: 1.5.0_08
4
Adriano

Eclipseを使用していない場合。次に、ant Javaプロパティをここで説明したようにファイルで直接変更できます。

http://pissedoff-techie.blogspot.in/2014/09/ant-picks-up-incorrect-Java-version.html

2
Utsav Gupta

Java_HOME環境変数に必要なJavaバージョン(あなたの場合はJava 1.5)、その後build.xml つかいます executable="${Java_HOME}/bin/javac"内部<javac></javac> 鬼ごっこ 。

例:

<target name="Java compiler" description="Compiles the Java code">
    <javac executable="${Java_HOME}/bin/javac" srcdir="./src" 
        destdir="${build.dir}/classes"> 
    </javac> 
</target>
1
Vikas Naik

javacタグには、次の2つのプロパティを使用します。

fork="yes"  
executable="full-path-to-the-javac-you-want-to-use".

プロパティの説明を見つけることができます here

1
ArKumar

EclipseからAntを実行する場合、Eclipseはclass-path(build path)で構成されたjdkまたはjreを使用します。

1
zawhtut

デフォルトでは、AntはJREをワークスペースJREバージョンと見なします。以下に従って、必要なバージョンに応じて変更する必要があります。

Eclipseの場合:

  • Build.xmlを右クリックして、「実行」をクリックし、「外部ツール構成...」をクリックします。JREタブを選択します。

  • 使用しているJREを選択します。

  • タスクを再実行します。これで問題ありません。

0
Manohar

Antドキュメントによる 、Antを実行するJREバージョンのJava.exeへの完全なパスにJAVACMD環境変数を設定します。

0
Harry