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。
この問題が発生したのは、デフォルトの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を変更する必要がありました。この設定は、後続の実行で記憶されます。
Eclipseの場合:
Build.xmlを右クリックします
「実行」をクリックし、「外部ツール構成...」をクリックします
タブを選択[〜#〜] jre [〜#〜]。使用しているJREを選択します。
タスクを再実行します。これで問題ありません。
antマニュアル によると、Java_HOMEの設定は機能するはずです-変更された設定はantに表示されますか?
または、JAVACMD変数を使用できます。
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" />
Antを冗長モードで実行します:ant -v
そして手がかりを探します。
Eclipse IDEを使用している場合、次の手順でそれを実現できます。
Antビルドファイルでタスクを右クリックします(build.xml
)。
「Run As」の上にマウスを置き、「External Tool Configurations ...」をクリックします。
「引数」に以下を追加します。
-Dant.build.javac.target=1.5 -Dant.build.javac.source=1.5
使用する互換性のレベル(1.4、1.5、1.6)をjavacタスクで指定することもできます。「ソース」レベル値と「ターゲット」レベル値を設定し、こちらのドキュメントを確認できます。 Javacタスクドキュメント
これはかなり古い質問ですが、今後の参考のためにメモを追加します。
同様の問題があり、PATH変数のエクスポートの順序を変更して修正しました。
たとえば、次のようにして文字列をPATHに連結する方法を使用していました(これは単なる例です)。
$> export PATH='$PATH:'$Java_HOME
変数PATHにすでにJavaが含まれている場合、最後の値は無意味になるため、順序が重要になります。これを解決するには、まず変数を追加し、次にPATH 。
この考えに従って、ANT_HOMEをエクスポートする順序を逆にしました。 ANT_HOMEの前にJava_HOMEを追加します。
これは偶然かもしれませんが、私にとってはうまくいきました。
ビルドファイル:
<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
Eclipseを使用していない場合。次に、ant Javaプロパティをここで説明したようにファイルで直接変更できます。
http://pissedoff-techie.blogspot.in/2014/09/ant-picks-up-incorrect-Java-version.html
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>
javac
タグには、次の2つのプロパティを使用します。
fork="yes"
executable="full-path-to-the-javac-you-want-to-use".
プロパティの説明を見つけることができます here
EclipseからAntを実行する場合、Eclipseはclass-path(build path)で構成されたjdkまたはjreを使用します。
デフォルトでは、AntはJREをワークスペースJREバージョンと見なします。以下に従って、必要なバージョンに応じて変更する必要があります。
Eclipseの場合:
Build.xmlを右クリックして、「実行」をクリックし、「外部ツール構成...」をクリックします。JREタブを選択します。
使用しているJREを選択します。
タスクを再実行します。これで問題ありません。
Antドキュメントによる 、Antを実行するJREバージョンのJava.exe
への完全なパスにJAVACMD
環境変数を設定します。