- 83 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 18:34:32 ]
- jdk1.4.2で作成された既存 web アプリケーションを、Java VM だけ 1.6 に移行することになりました。
(ソースコード修正は行わない)。 ちなみに既存システムなので、1.4.2 でコンパイルされた class ファイルはあります。 このとき、以下のうちどうすべきですか? 1.jdk 1.6 ではコンパイルしない。 既存コンパイル済みの class ファイルを jdk1.6 で動かす。 2.jdk 1.6 でコンパイルしなおす。このとき、-source オプションは何もつけない。 コンパイル結果の class ファイルを jdk1.6 で動かす。 3.jdk 1.6 でコンパイルしなおす。このとき、-source 1.4 をつける。 コンパイル結果の class ファイルを jdk1.6 で動かす。 4.jdk 1.6 でコンパイルしなおす。このとき、-source 1.6 をつける。 コンパイル結果の class ファイルを jdk1.6 で動かす。 私の考察: jdk1.4.2 時代に作られたソースコードなので、当然ソースコードは1.4準拠です。 しかしこのソースは「1.4にはあるけど1.5以降で削除されたメソッド」は使っていないので、 jdk1.6でもコンパイルは通ります(←Generics は使ってないけど、1.6準拠と言える?) -source 1.4 をつけると class ファイル(バイトコード)も 1.4 準拠になるのですよね。 VM は jdk1.6 なので、-source 1.6 をつけて class ファイル(バイトコード)を 1.6 準拠のものを生成した ほうが、パフォーマンスはいいと考えました(計測してみたなどの根拠はありません)。 つまり正解は4.?
|

|