この製品バージョンは、Java™ Platform, Standard Edition (Java SE) 6 仕様をサポートします。その Java 仮想マシンは、Java 言語コンパイラーとランタイム環境を提供します。
新規および既存のアプリケーションが、Java SE 6 によって追加される機能を活用するかどうかを判別し、必要に応じてジャストインタイム (JIT) モードを調整し、非推奨機能からの移行を開始します。
このタスクについて
Java SE 6 では以下の JSR が追加されました。
- JSR 105: XML デジタル署名アプリケーション・プログラミング・インターフェース (API)
- JSR 173: Streaming API for XML (StAX)
- JSR 181: Web Services Metadata
- JSR 199: Java コンパイラー API
- JSR 202: Java クラス・ファイル仕様の更新
- JSR 221: Java DataBase Connectivity (JDBC) 4.0
- JSR 222: Java Architecture for XML Binding (JAXB) 2.0
- JSR 223: Java プラットフォーム用スクリプト
- JSR 224: Java API for XML-Based Web Services (JAX-WS) 2.0
- JSR 250: 共通アノテーション
- JSR 269: プラグ可能なアノテーション処理 API
新規仮想マシン仕様には、Java とスクリプト言語を統合するためのインターフェース、パスワード・プロンプト、ファイル入出力機能拡張、およびストリーミング XML 文書の構文解析などの、アプリケーション開発者を援助するいくつかのフィーチャーおよび機能が追加されています。
手順
デフォルトのジャストインタイム (JIT) モードを使用するかどうかを決定します。 Java SE 6 では、Solaris 仮想マシンのデフォルト JIT モードは、ハードウェア構成によって異なります。常に client であるわけではありません。
Java SE 6 では、サーバー・クラス・ハードウェア (つまり、2 つ以上の CPU および 2 GB 以上の RAM) の場合、仮想マシンは自動的に server JIT モードに切り替わります。
ユーザーの選択に応じて -server または -client パラメーターを構成するには、サーバー・プロセス定義の一般的な Java 仮想マシン引数を設定します。
Java 仮想マシン (Java virtual machine (JVM)) の設定を参照。
- アプリケーションで新規 Java SE 6 機能を利用するかどうかを決定します。
Java SE 6 フィーチャーを使用するアプリケーションは、
バージョン 7 以降のノードにのみデプロイすることができます。これは、以前の製品バージョンが
Java SE 6 仮想マシンを備えていないためです。
Java 仮想マシン内部のクラスや API にアクセスするアプリケーションは、エラーを引き起こす場合があります。これらのクラスや API は、Java SE 6 仕様でカバーされないため、変更の対象となります。仮想マシンの Java API for XML Processing (JAXP) 実装を提供する Xerces や Xalan クラスを直接使用するなど、XML および XSL パーサーの実装を直接使用することは、できるだけ避けるようにしてください。直接パーサー API も「内部にある」とみなされ、変更を受けやすくなっています。アプリケーションでは、Java SE 6 API 文書で定義された JAXP API のみ使用するようにしてください。アプリケーションが特定バージョンの Xerces や Xalan、あるいはその他の XML/XSL パーサー・パッケージを必要とする場合は、パーサーをアプリケーションの WEB-INF/lib ディレクトリーに組み込み、アプリケーション・デプロイメントにおいて適切なクラス・ロード・モードを設定します。これにより、アプリケーション用に、XML パーサー API は、Java 仮想マシン・ブートストラップ・クラスパスからでなく、アプリケーション・クラスパスからロードされるようになります。このガイドラインに従わない場合、新規 Java SE 6 レベルへのマイグレーションの試行中に重大なエラーが発生する可能性があります。
- コンパイラー・モードを設定して、Java SE 6 アプリケーションを前のレベルの Java 仮想マシン上で実行できるようにコンパイルします。
前の仕様上で実行する予定の、Java SE 6 でビルドするアプリケーションをコンパイルする場合は、Java SE 6 コンパイラーで -source および -target モードを指定してください。これにより、生成されるバイトコードが、以前の Java 仮想マシンと互換性を持つようになります。
例えば、ターゲットの Java 仮想マシンが 1.4.2 レベルのときに、Java SE 6 でアプリケーションをコンパイルする場合、1.4.2 と互換性のあるバイトコードを生成するには、-source 1.4 および target 1.4 と指定する必要があります。この指定では、Java SE 6 に新しく追加されたパッケージ、クラス、または機能の使用は処理されません。バイトコードの出力のみが処理されます。開発者は、アプリケーションを複数の Java 仮想マシン仕様レベルで実行する場合は、J2SE パッケージからどの API を使用するかに注意を払う必要があります。
- 以前にコンパイルした Java 2 Standard Edition (J2SE) 1.4 および 5.0 アプリケーションでの非互換性に対処します。
http://java.sun.com/javase/technologies/compatibility.jsp に Oracle Corporation が掲載している非互換性事項を除き、Java SE 6 は、Java 2 Technology Edition、バージョン 5.0 および Java 2 Technology Edition、バージョン 1.4.2 との上位バイナリー互換性があります。
- 非推奨の Java Virtual Machine Debug Interface (JVMDI) および Java Virtual Machine Profiler Interface (JVMPI) の機能から Java Virtual Machine Tool Interface (JVMTI) に移行します。
非推奨の機能 (Deprecated feature): JVMDI や JVMPI 機能は J2SE 5.0 では非推奨でした。これらは Java SE 6 では除去されました。
depfeat
- Java コマンド行インターフェースの使用法をアップデートします。
Java SE 6 レベルのコマンド行インターフェースは、仮想マシンのベンダーによって異なりますが、J2SE 5 から大幅に変更されたわけではありません。それらは、
JAVA_HOME/bin ディレクトリーにあります。すべての Java SE 6 実装の標準である、いくつかの顕著なコマンド行オプションを以下に示します。
- JVMTI の場合、-agentlib を使用して、指定するネイティブ・エージェント・ライブラリーをロードします。
- JVMTI の場合、-agentpath を使用して、絶対パス名によってネイティブ・エージェント・ライブラリーをロードします。
- JVMTI の場合、-javaagent を使用して、Java プログラミング言語エージェントをロードします (詳しくは、java.lang.instrument を参照してください)。
- アノテーション機能をサポートするこの新規コマンド行については、apt -help を参照してください。
- そのコマンド行の情報やアップデートについては、javac -help を参照してください。
- ANT タスクをアップデートします。
本製品の以前のバージョンに付属している idltojava ANT タスクに基づいて ANT タスクを作成した場合、そのタスクが生成するスタブ、タイ、およびスケルトンが、以前の製品リリースと互換性を持つようにするために、そのタスクが、J2SE 1.4 または 5 の場合と同様に、Java SE 6 用の適切なパラメーターを受け渡すようにしてください。