[Java] Migrating from Java SE 6 to Java SE 7

原文はこちら。
https://blogs.oracle.com/henrik/entry/migrating_from_java_se_6

なぜJava SE 6からJava SE 7へ移行しなければならないのか?

もっとも明確な理由は、Java 7で導入した新機能や機能改善を使っていただける、ということです。
これらの変更は皆様のアプリケーションコードを少々変更しなければならない場合がありますが、こうした変更はパフォーマンスや品質、可読性の観点で非常に価値があるものです。詳細は以下のドキュメントをどうぞ。
Java SE 7 Documentation
JDK 7 Adoption Guide
http://docs.oracle.com/javase/7/docs/webnotes/adoptionGuide/index.html
もう一つの重要な理由として、Oracle JDK 6のパブリックアップデートが終わったというものです。2013年2月以後、JDK 6のアップデートはパブリックにはご利用いただけなくなります。そして古いJDK 6はJava Archiveに移動されます。
Oracle Java Archive
http://www.oracle.com/technetwork/java/archive-139210.html
Javaの古いバージョンを使うのはおすすめできませんので、ちょうど今がJava 7へ移行するタイミングと考えます。パブリックアップデートの終了に関する詳細情報は、以下のリンクをご覧ください。
Java SE End of Life Policy
http://www.oracle.com/technetwork/java/eol-135779.html
アプリケーションの移行が困難で引き続きOracle JDK 6のアップデートをご所望であれば、OracleはJava SE Supportプログラムを通じて長期サポートをご提供しています。
Oracle Java SE Support
http://www.oracle.com/us/technologies/java/standard-edition/support/overview/index.html
[訳注]
Java SE AdvancedもしくはJava SE Suiteのことです。
http://www.oracle.com/jp/technologies/java/standard-edition/advanced-suite/overview/index.html

で、どうすればいいの?

Option 1 – “ただ実行するだけ”

Javaは後方互換性を有しています。つまりプログラムがJava SE 6でコンパイルされJava SE 6で動作していた場合、Java Se 7 JVMでも動作するであろう、ということです。Java SE 7はJavaプラットフォームの過去のバージョンとの互換性がありますので、大抵の既存のプログラムはJava SE 7上で修正の必要なく動作するはずです。ただし、まれな状況で少々JREとJDKに互換性のない箇所がありますが、そのような箇所は以下のドキュメントに記載されています。
Incompatibilities between Java SE 7 and Java SE 6
http://www.oracle.com/technetwork/java/javase/compatibility-417013.html#incompatibilities.

Option 2 – ソースコードを修正して再コンパイル

Java SE 7で導入された新機能のほとんどはJavaのコードレベルでの改善ですので、その恩恵を受けるためには、あなたの古いソースコードをアップデートする、もしくは新しく書いたコードで新機能を使い、Java SE 7用にコードをコンパイルする必要があります。
Netbeans IDEは新機能の利用が可能な場所をコードから見つける手助けをしてくれます。詳細は以下のリンクをご覧ください。他の主要なIDEでも同様の機能を持っています。
Refactoring with Inspect and Transform in the NetBeans IDE Java Editor
Convert to JDK 7
http://netbeans.org/kb/docs/java/editor-inspect-transform.html#convert
APIの中には"deprecated"(廃止予定)とマークされているものがあります。これらは別のAPIに書き換えることが推奨されています。廃止予定のAPIは以下のリンクから確認できます。
Deprecated API List (Java Platform SE 7)
http://docs.oracle.com/javase/7/docs/api/deprecated-list.html
また、sun.* パッケージのAPIにも変更がありました。これらのAPIは、これまでもAPI内での利用のみを意図していたため、利用にあたっては「自己責任」ということになっています。
Why Developers Should Not Write Programs That Call 'sun' Packages
http://www.oracle.com/technetwork/java/faq-sun-packages-142232.html
これらのパッケージを利用している場合は、速やかに代替手段を見つけていただくことを強く推奨します。

0 件のコメント:

コメントを投稿