2

次のシナリオを検討してください。Javaフレームワークと一連のアプリケーションプラグインがJavaSEクライアントアプリケーションとしてデプロイされます。クライアントランタイムはJavaSE6ですが、フレームワークとアプリケーションプラグインはJavaSE5でコンパイルされています。

これで、フレームワークがJava SE 6で再コンパイルされ、アプリケーションプラグインは変更されません(Java SE 5でコンパイルされます)。

フレームワークの「インターフェース」(アプリケーションプラグインによって直接使用されるクラス/インターフェース)がJava SE 5(言語レベルおよびAPI)でコンパイル可能なままであると仮定すると、問題は次のとおりです。アプリケーションプラグインを(再コンパイルされたフレームワークに対して)再コンパイルする必要がありますか。実行時に一緒に使用できるようにするには(Java SE 6を使用)?

たぶん、質問はこれに帰着します:「SE6-classfiles」(v50)がSE6-runtime内に「SE5-classfiles」(v49)によって使用されるとき、どのような状況で問題が発生する可能性がありますか?

4

1 に答える 1

4

インターフェイス/クラスに(バイナリ) 非互換の変更がなく、ランタイム VM が新しいクラスファイル バージョンをサポートしている場合、問題は発生しません。

于 2012-10-09T13:44:22.027 に答える