1

Java 6 および 7 がインストールされています。Java 6 を使用してコンパイルするように ant を指定するにはどうすればよいですか? Java 6コンパイラパスを設定し、それが機能するスレッドを見たことがありますが、javacタスクで単純な属性を設定するant javacでJavaのターゲットバージョンを設定するようなスレッドも見ました。そして、ターゲットとソースを指定するように指示されることもあります。

ここhttp://docs.oracle.com/javase/7/docs/technotes/tools/solaris/javac.html#examplesを読みましたが、2つの属性の使用法をまだ理解していません。オラクルのドキュメントから、source言語ルールを指定しているようです(たとえば、「これはjava6ルールを使用しているため、try-with-resourceブロックはありません」)、target生成するjava-version-bytecodeを指定していますか?ドキュメントは、常に設定する必要があることを暗示しているようですが、最初のリンクの質問は、属性sourceを指定するだけだと言っているのはなぜですか?target=1.6

4

1 に答える 1

3

ANT はそれ自体が Java プログラムであるため、JAVA_HOME 環境変数を使用して、実行時に使用する JVM を選択します。

一部の ANT タスクでは、デフォルト オプションをオーバーライドして、別の Java コンパイラまたは JRE を選択できます。詳細については、ANT のドキュメントを参照してください。

アップデート

Java 6 および 7 がインストールされています。Java 6 を使用してコンパイルするように ant を指定するにはどうすればよいですか?

javacタスクのソースおよびターゲット属性は、互換性設定を制御します。ANT がどの JDK を使用するかは制御しません。

最新の JDK で古いバージョンの Java プログラミング言語をコンパイルしたり、古いバージョンの Java ランタイムと互換性のあるバイトコードを生成したりできます。

sourcesは標準オプションの一部であり、targetsは、Oracle の javac コマンドのドキュメントのクロス コンパイル セクションで詳しく説明されています。

最後に、Oracle は Java の互換性に関する次のドキュメントを作成しました。

Java 6 と Java 7 は強力な互換性があると述べていますが、これは以前のバージョンの Java では必ずしもそうではありませんでした。

PS 同じリンクを繰り返すことをお詫びしますが、概念がより明確になることを願っていますか?

于 2013-05-11T12:35:34.483 に答える