1

私はjdk7で書かれたJavaソースコードを持っています。私のマシンにはjdk7とjre7があります。

ここで、ANT を使用してコンパイラ jdk1.6 でこのコードをコンパイルする必要があります。

そこで、プロジェクト build.xml に次の行を追加しようとしました。

<target name="compile">
<javac target="1.6" srcdir="src"/>
</target>

これで十分ですか?または、bootclasspath を追加する必要がありますか? はいの場合、ビルド ファイルに追加できる構文を指定してください

4

1 に答える 1

3

それだけでは不十分かもしれません。

まず、 に設定targetするだけでなく、 にも設定する1.6必要があります。source1.6

<javac source="1.6" target="1.6" srcdir="src">

コードを 1.6 互換のソース コードとして解釈する必要があることを Java コンパイラに知らせます。

しかし、より大きな問題は、これによって Java 7 標準ライブラリーの新しいクラス、インターフェース、およびメソッドの使用が妨げられないことです。Java 7 のみのクラス、インターフェース、またはメソッドを使用すると、コンパイルはNoSuchMethodError行われますが、Java 6 で実行した場合のように、Java 6 に存在しないメソッドを呼び出すとエラーが発生します。

コードが Java 6 と互換性があることを確認する最も安全な方法は、JDK 6 をインストールし、それを使用してコードをコンパイルすることです。(注: 複数のバージョンの JDK がマシンにインストールされていても問題はありません。異なるディレクトリにインストールするだけです)。

于 2013-09-12T07:02:28.400 に答える