2

私が取り組んでいる大規模な ant ビルドがあり、現在メモリが不足しています。この問題を軽減するのに役立つと私が読んだ 1 つの方法は、javac fork="true" を使用して別の jvm で javac を実行することです。

私の問題は、IBM JDK を使用してプロジェクトをコンパイルする必要があることです (これは JAVA_HOME によって参照される JDK ではありません。そうしないことをお勧めします)。Ant の javac の実行可能属性を IBM の javac へのパスに設定しようとしましたが、うまくいきませんでした (プロジェクトはまだコンパイルされません)。実行可能な属性状態に関する Ant のドキュメント:

fork="yes" の場合に使用する javac 実行可能ファイルへの完全なパス。現在 Ant を実行している Java バージョンのコンパイラにデフォルト設定されます。fork="no" の場合は無視されます。Ant 1.6 以降、jikes、jvc、gcj、または sj を使用する場合、この属性を使用して実行可能ファイルへのパスを指定することもできます。

誰にもアイデアはありますか?

ありがとう -

4

1 に答える 1

0

単一の ANT ビルドを使用して、1.7 でクラスのセットをコンパイルし、1.6 で別のクラスのセットをコンパイルしましたが、正常に動作します。

1.7 と 1.6 はどちらも IBM JDK のものです。JAVA_HOME は 1.7 JDK を指し、ANT バージョンは 1.9 です

以下は、使用される ANT タグです。

1.7 JAVA_HOME を使用したコンパイル

`<javac srcdir="${LOCAL_SOURCE_PATH}/temp" debug="true" deprecation="false" fork="true" memoryInitialSize="1024M" memoryMaximumSize="1500M" verbose="${verbose}">`

1.6 javac タグの実行可能属性を使用したコンパイル

`<javac srcdir="${LOCAL_SOURCE_PATH}/branchtmp" fork="true" executable="${JAVA6_HOME}/bin/javac" compiler="javac1.6" debug="true" deprecation="false"memoryInitialSize="1024M" verbose="${verbose}">`

お役に立てれば。

于 2015-10-30T06:13:55.883 に答える