Java 5 コードを使用してアプリケーションをバイトコードにコンパイルした場合、結果の .class ファイルは Java 1.4 で実行できますか?
後者が機能し、Java 1.4 アプリケーションで Java 5 フレームワークを使用しようとしている場合、注意すべきことはありますか?
Java 5 コードを使用してアプリケーションをバイトコードにコンパイルした場合、結果の .class ファイルは Java 1.4 で実行できますか?
後者が機能し、Java 1.4 アプリケーションで Java 5 フレームワークを使用しようとしている場合、注意すべきことはありますか?
いいえ! .class
ファイルは前方互換のみです。Java 5 では、Varargs、enum、およびジェネリックを処理するために、新しいクラスファイル属性とフォーマットの変更が導入されました。Java 4 は、これらを処理するときに失敗します。
ただし、一部の Java 5 言語機能用に JDK 1.4 互換のバイトコードを生成する javac には、サポートされていない -target jsr14 オプションがあります。
また、Java 5 クラスファイルを Java 4 ファイルに変換するプロジェクト ( Retroweaver、Retrotranslatorなど) もあります。
編集: この優れたリソースを見つけました:以前の JDK での Java 5 言語機能の使用
いいえ。上にしか移動できません。Java 1.4 バイトコードは Java 5 ランタイムで動作します。ただし、Java 1.4 にない機能を使用していない場合は、 の-target
および-source
オプションをjavac
使用してコンパイルできます。
Java 5 を使用して Java 4 で実行できるアプリケーションを作成する場合、Java 5 より前には存在しなかった機能を使用することはできません。
いいえそうではありません。.class ファイルは前方互換のみです。
Java5 フレームワークは、ライブラリがおそらく 1.4 環境と互換性のないジェネリックまたはアノテーションを使用していることを意味します。必要なフレームワークを使用できるようにするために、1.5 JVM の下で 1.4 アプリケーションを実行する場合、どの程度のリスクがあるかを評価する必要があります。
一般に、1.5 への移行はほとんど苦痛を伴うものではありませんが、入念なテストが求められます。