3

Java 5 コードを使用してアプリケーションをバイトコードにコンパイルした場合、結果の .class ファイルは Java 1.4 で実行できますか?

後者が機能し、Java 1.4 アプリケーションで Java 5 フレームワークを使用しようとしている場合、注意すべきことはありますか?

4

3 に答える 3

6

いいえ! .classファイルは前方互換のみです。Java 5 では、Varargs、enum、およびジェネリックを処理するために、新しいクラスファイル属性とフォーマットの変更が導入されました。Java 4 は、これらを処理するときに失敗します。

ただし、一部の Java 5 言語機能用に JDK 1.4 互換のバイトコードを生成する javac には、サポートされていない -target jsr14 オプションがあります。

また、Java 5 クラスファイルを Java 4 ファイルに変換するプロジェクト ( RetroweaverRetrotranslatorなど) もあります。

編集: この優れたリソースを見つけました:以前の JDK での Java 5 言語機能の使用

于 2009-08-12T15:34:00.727 に答える
3

いいえ。上にしか移動できません。Java 1.4 バイトコードは Java 5 ランタイムで動作します。ただし、Java 1.4 にない機能を使用していない場合は、 の-targetおよび-source オプションをjavac使用してコンパイルできます。

Java 5 を使用して Java 4 で実行できるアプリケーションを作成する場合、Java 5 より前には存在しなかった機能を使用することはできません。

于 2009-08-12T15:34:02.710 に答える
2

いいえそうではありません。.class ファイルは前方互換のみです。

Java5 フレームワークは、ライブラリがおそらく 1.4 環境と互換性のないジェネリックまたはアノテーションを使用していることを意味します。必要なフレームワークを使用できるようにするために、1.5 JVM の下で 1.4 アプリケーションを実行する場合、どの程度のリスクがあるかを評価する必要があります。

一般に、1.5 への移行はほとんど苦痛を伴うものではありませんが、入念なテストが求められます。

于 2009-08-12T15:35:12.597 に答える