新機能と拡張機能
|
目次 |
Java 2 Platform Standard Edition のバージョン 5.0 は、メジャーリリースです。前回のメジャーリリース (1.4.0) 以降、下記の機能が 5.0 で導入されました。新機能の概要については、J2SETM 5.0 in a Nutshell も参照してください。問題点については、JDK 5.0 release notes を参照してください。
- パフォーマンスの拡張
- Java 言語機能
- 総称
- 拡張 for ループ
- オートボクシング / アンボクシング機能
- 型保証された列挙
- 変数引数
- static のインポート
- メタデータ (注釈)
- 仮想マシン
- クラスデータの共有
- ガベージコレクタエルゴノミクス
- サーバクラスマシン検出
- スレッド優先順位の変更
- 致命的エラーの処理
- 高精度タイミングのサポート
- 基本ライブラリ
- 言語およびユーティリティパッケージ
- ネットワーク機能
- セキュリティ
- 国際化
- 環境変数のサポートの改善
- ProcessBuilder
- フォーマッタ
- スキャナ
- リフレクション
- JavaBeansTM コンポーネントアーキテクチャ
- Collections Framework
- XML 処理用 Java API (JAXP)
- ビット操作演算
- Math
- インストゥルメンテーション
- 直列化
- 並行処理ユーティリティ
- スレッド
- 監視および管理
- 統合ライブラリ
- Remote Method Invocation (RMI)
- Java Database Connectivity (JDBC)
- CORBA、Java IDL、および Java RMI-IIOP
- Java Naming and Directory InterfaceTM (JNDI)
- ユーザインタフェース
- 国際化
- Java サウンドテクノロジ
- Java 2DTM テクノロジ
- Image I/O
- AWT
- Swing
- 配備
- 一般的な配備
- Java Web Start
- ツールおよびツールアーキテクチャ
- Java Virtual Machine Tool Interface (JVMTI)
- Java Platform Debugger Architecture (JPDA)
- Java コンパイラ (javac)
- Javadoc ツール
- 注釈処理ツール (
apt
)- OS およびハードウェアプラットフォーム
- サポートするシステム構成
- 64 ビット AMD Opteron プロセッサ
パフォーマンスの拡張の概要については、「パフォーマンスの拡 張」を参照してください。
詳細については、「新しい言語機能」を参照してください。総称
待ち望まれていた型システムでの今回の拡張によって、コンパイル時の型保証を実現しながら、型またはメソッドを、さまざまな型のオブジェクトに対して使用 できるようになりました。コンパイル時の型保証が Collections Framework に追加され、キャスト操作の煩雑さをなくしました。JSR 14 を参照してください。拡張 for ループ
この新しい言語構造によって、コレクションおよび配列を繰り返すときに、反復子およびインデックス変数の煩雑でエラーの起こりやすい作業がなくなりまし た。JSR 201 を参照してください。オートボクシング / アンボクシング機能
この機能によって、プリミティブ型 (int など) とラッパー型 (Integer など) との間の手動変換の煩雑さがなくなりました。JSR 201 を参照してください。型保証された列挙
この柔軟なオブジェクト指向の列挙型機能によって、任意のメソッドおよびフィールドを使用して列挙型を作成できるようになりました。この機能により、冗長 になることもエラーが頻発することもなく、型保証された列挙パターン (『Effective Java』、項目 21) のすべての利点を実現しています。JSR 201 を参照してください。変数引数
この機能によって、可変長の引数リストを受けるメソッドを呼び出すときに、手動で引数リストを配列にボクシングする必要性がなくなりました。JSR 201 を参照してください。static のインポート
この機能により、static メンバをクラス名で修飾する必要がなく、「Constant Interface Antipattern」の欠点もありません。JSR 201 を参照してください。メタデータ (注釈)
この言語機能を使用すると、多くの場合に常用コードを記述する必要がありません。常用コードは、ソースコードの注釈からツールを使用して生成されます。こ れにより、プログラマが行うべきことを述べる「宣言型の」プログラミング方法が実現され、そのコードはツールが生成します。また、ソースファイルの変更に 合わせて最新の状態にしておかなければならない「付属ファイル」を保守する必要がありません。その代わりに、必要な情報はソースファイル内で保守します。JSR 175 を参照してください。
クラスデータ共有
クラスデータ共有は、アプリケーションの起動時間とサイズを軽減するための機能です。このインストールプロセスでは、一連のクラスが、システム JAR ファイルから専用の内部表現へロードされ、この表現が「共有アーカイブ」ファイルへダンプされます。以降の JVM の呼び出し中に、共有アーカイブがメモリマップされます。このため、これらのクラスのロードのコストが節約され、これらのクラスに関する JVM のメタデータの多くを、複数の JVM プロセスで共有できるようになります。詳細については、上記のリンクをクリックしてください。ガベージコレクタエルゴノミクス
並行コレクタは、アプリケーションが必要とするメモリ容量を監視し、この容量に適合できるように拡張されました。アプリケーションのパフォーマンスの目標 を指定でき、JVM では、この目標に一致した最小のアプリケーションサイズでこのパフォーマンス目標を満たすように、Java ヒープのサイズが調整されます。この適合ポリシーの目標は、コマンド行オプションを調整しなくても、最適なパフォーマンスを得られるようにすることです。 ガベージコレクション機能の概要については、上記のリンクをクリックしてください。サーバクラスマシン検出
アプリケーションの起動時に、起動ツールは、アプリケーションが「サーバクラス」マシン上で実行されているかどうかを検出することができます。スレッド優先順位の変更
スレッド優先順位のマッピングは、Java スレッドと、優先順位を明示的に設定していないネイティブスレッドとが、同等の順位で競合できるように、いくぶん変更されました。致命的エラーの処理
致命的なエラーのレポート機構は、診断の出力を改善し信頼性を向上するために拡張されました。高精度タイミングのサポート
メソッドSystem.nanoTime()
が追加され、相対時間測定でナノ秒精度の時間ソースへアクセスできるようになりました。System.nanoTime() が返す時間値の実際の精度は、プラットフォームによって異なります。
言語およびユーティリティパッケージ
java.lang と java.util の拡張機能の概要については、上記のリンクをクリックしてください。ネットワーク機能
追加されたネットワーク機能の概要については、上記のリンクをクリックしてください。セキュリティ
このリリースの J2SE では、セキュリティに関する重要な拡張機能が用意されました。セキュリティトークンのサポートの向上、より多くのセキュリティ標準 (SASL、OCSP、TSP) のサポート、拡張性 (SSLEngine) およびパフォーマンスの改善に加え、暗号化および Java GSS 領域において多数の拡張機能が備わりました。詳細については、上記のリンクをクリックしてください。国際化
次のような拡張機能があります。
- 文字の処理が、バージョン 4.0 の Unicode 標準に基づくようになりました。このため、
java.lang package
におけるCharacter
およびString
クラス、java.text package
における照合および双方向のテキスト分析機能、java.util.regex
パッケージにおける文字クラス、および J2SE の他の多くの部分に影響が生じました。このアップグレードの一環として、補足文字のサポートが、JSR 204 技術者グループによって指定され、J2SE 全体に実装されました。詳細については、「Supplementary Characters in the Java Platform」 の記事、「Java Specification Request 204」、およびCharacter
クラスドキュメントを参照してください。- DecimalFormat クラスは、精度を犠牲にすることなく、
BigDecimal
およびBigInteger
の値をフォーマットおよび解析できるように拡張されました。このような値のフォーマットは自動的に拡張されます。BigDecimal への解析は、setParseBigDecimal
メソッドを使用して有効にする必要があります。- ベトナム語は、
java.util
およびjava.text
パッケージでのロケールに依存するすべての機能でサポートされるようになりました。サポートされるロケールと書記法の実装については、「サポートするロケール」を参照してください。環境変数のサ ポートの改善
System.getenv(String)
メソッドは非推奨ではなくなりました。新しいSystem.getenv()
メソッドでは、Map<String,String>
として、プロセス環境へアクセスできるようになっています。ProcessBuilder
新しいProcessBuilder
クラスは、Runtime.exec よりも簡単に、サブプロセスを呼び出すことができます。実際、ProcessBuilder を使用すると、変更されたプロセス環境 (つまり、親のプロセス環境を基にしてわずかに変更を加えた環境) でサブプロセスを開始することが簡単になりました。フォーマッタ
printf スタイルのフォーマット文字列のインタープリタであるFormatter
クラスは、レイアウトの位置揃えや配置、数値、文字列、日時データに関する共通フォーマット、およびロケール固有の出力をサポートします。byte
、java.math.BigDecimal
、 およびjava.util.Calendar
などの共通の Java のデータ型がサポートされています。任意のユーザ型に対する限定的な書式のカスタマイズについては、java.util.Formattable
インタフェースを使用します。スキャナ
java.util.Scanner
クラスは、テキストをプリミティブまたはString
へ変換する場合に使用できます。 このクラスは、java.util.regex
パッケージに基づいているため、ストリーム、ファイルデータ、文字列、またはReadable
インタフェースの実装者について、正規表現ベースの検索を行うことができます。リフレクション
総称、注釈型、列挙型のサポートが追加され、便利なメソッドが追加されました。また、java.lang.Class のクラスが汎用化されました。JavaBeans コンポーネントアーキテクチャ
IndexedPropertyChangeEvent
というPropertyChangeEvent
のサブクラスが、Bean の変更部分を識別するインデックスを使用するバウンドプロパティをサポートするために追加されました。また、インデックスの付いたプロパティ変更イベント の発生をサポートするために、PropertyChangeSupport
クラスにメソッドが追加されました。Collections Framework
Collections Framework は、次のよ うに拡張されました。
- 総称、拡張
for
ループ、およびオートボクシング機能の 3 つの言語機能が、コレクションの対象になったQueue
、BlockingQueue
、およびConcurrentMap
の 3 つの新しいインタフェースが、フレームワークに追加された (2 つはjava.util.concurrent
の一部)Queue
の 2 つの固定実装と、1 つのスケルトン実装が追加された- 5 つのブロッキングキュー実装と、1 つの
ConcurrentMap
実装が追加されたMap
およびSet
の特殊用途の実装が、型保証された列挙で使用するために用意されたList
およびSet
の特殊目的の copy-on-write 実装が追加された- ラッパー実装が、ほとんどの Collection インタフェースでの動的な型の安全性を追加するために用意された
- コレクションを操作するために、いくつかの新しいアルゴリズムが用意された
- 配列のハッシュコードおよび文字列表現を計算するために、メソッドが用意された
XML 処理用 Java API (JAXP)
詳細については上記のリンクをクリックするか、JSR 206 を参照してください。ビット操作演算
ラッパークラス (Integer
、Long
、Short
、Byte
、 およびChar
) では、highestOneBit
、lowestOneBit
、numberOfLeadingZeros
、numberOfTrailingZeros
、bitCount
、rotateLeft
、rotateRight
、reverse
、signum
、 およびreverseBytes
などの共通のビット操作演算がサポートされるようになりました。Math
ライブラリで用意された計算機能が、次のように追加されました。
BigDecimal
クラスでは、固定精度の浮動小数点計算のサポートが追加された。JSR 13 を参照Math
およびStrictMath
ライブラリには、双曲線超越関数 (sinh、cosh、tanh)、立方根、常用対数などが含まれるようになった- 16 進浮動小数点サポート - 特定の浮動小数点値の正確かつ予想可能な指定を可能にするために、16 進表記は、浮動小数点リテラル用に使用でき、また
Float
およびDouble
における浮動小数点変換メソッドへの文字列用に使用できるようになったインストゥルメンテーション
新しいjava.lang.instrument
パッケージでは、Java プログラミングエージェント が、Java 仮想マシン上で実行するプログラムを計測できるようにするサービスが用意されました。この計測機構は、バイトコードのメソッドを変更したものです。直列化
バージョン 5.0 での新機能である列挙型の処理をサポートするようになりました。列挙インスタンスを直列化する規則は、通常の直列化可能なオブジェクトを直列化する規則と 異なります。列挙インスタンスの直列化は、その列挙定数名と、その基になっている列挙型を識別する情報とだけで構成されています。同様に、直列化復元の動 作も異なります。クラス情報は適切な列挙クラスを見つけるために使用されます。そのクラスと受け取った定数名を使用して Enum.valueOf メソッドが呼び出され、列挙定数を取得して返します。並行処理ユーティリティ
java.util.concurrent
、java.util.concurrent.atomic
、 およびjava.util.concurrent.locks
のパッケージには、並行処理クラスとアプリケーションの開発用の、高性能かつ拡張性の高い、スレッドセーフな構築ブロックの強力かつ拡張可能なフレーム ワークが用意されました。スレッドプール、スレッドセーフなコレクション、セマフォ、タスクスケジューリングフレームワーク、タスク同期化ユーティリ ティ、基本変数、およびロックなどがあります。これらのパッケージをコアクラスライブラリへ追加したことにより、データ構造に対する Collections Framework の場合とまったく同じように、プログラマがこれらのユーティリティを手書きで作成する必要がなくなりました。また、これらのパッケージでは、高度な並行プ ログラミング用の低レベルなプリミティブも用意しています。これらのプリミティブでは、プロセッサが提供する並行サポートを利用して、以前ではネイティブ コードを使用しなければ実現できなかったほど高性能で拡張性の高い並行処理アルゴリズムを、Java 言語に実装できるようになりました。JSR 166 を参照してください。スレッド
java.lang.Thread
クラスには、次の拡張機能が備えられました。
- スレッド優先順位の処理が変更さ れた。詳細については前記のリンクを参照
- スレッドの実行状態の問い合わせ用に、
Thread.State
列挙型クラスと新しいgetState()
API が用意された- 新しいスレッドダンプ API -
Thread
クラスのgetStackTrace
およびgetAllStackTraces
メソッドではプログラミングによる方法で、1 スレッドまたはすべてのスレッドのスタックトレースを取得できるuncaughtExceptionHandler
機構は、以前には ThreadGroup クラス以外からは使用できなかったが、Thread クラスから直接使用できるようになったsleep()
メソッドの新しい形式により、1 ミリ秒未満のスリープ時間が可能になった監視および管理
このリリースの J2SE では、Java プラットフォームの監視および管理に、重要な拡張機能がもたらされました。詳細については、上記のリンクを参照してください。
- Java 仮想マシン用の監視および管理 API
新しいjava.lang.management
パッケージには、Java 仮想マシンの監視および管理用のインタフェースが用意された- ロギング機能用の監視および管理 API
新しいjava.util.logging.LoggingMXBean
インタフェースは、ロギング機能用の管理インタフェースである- Java 仮想マシンの JMX インストゥルメンテーション
Java 仮想マシン (JVM) には、ユーザが JMX を使用して、仮想マシンを監視および管理できるようにするインストゥルメンテーションが備えられた。簡単に JMX エージェントを起動して、リモートまたはローカルの Java VM インストゥルメンテーション、または JMX インストゥルメンテーションを使用した任意のアプリケーションを監視および管理できるようになった。詳細については、「JMX を使用した監視および管理」を参照- SNMP エージェントは、JSR 163 によって定義された、Java 仮想マシンインストゥルメンテーションの標準 MIB を公開する。詳細については、「SNMP 監視および管理」を参照
- JavaTM Management Extensions
JMXTM API バージョン 1.2 と、JMX Remote API バージョン 1.0 の RMI コネクタは、J2SE 5 リリースに含まれている。JMX API は、監視および管理用のライブラリとアプリケーションを計測できるようにする。RMI コネクタは、このインストゥルメンテーションにリモートからアクセスできるようにする。詳細は、JMXのドキュメントを参照
Remote Method Invocation (RMI)
RMI は、次の領域で拡張されました。
- スタブクラスの動的な生成 - このリリースでは、実行時にスタブクラスを動的に生成するためのサポートが追加されたので、リモートオブジェクト用のスタブクラスを事前に生成する Java(TM) Remote Method Invocation (Java RMI) スタブコンパイラ (rmic) を使う必要がなくなった。以前のバージョンで実行されるクライアントをサポートする必要があるリモートオブジェクトに対しては、rmic を使用して事前にスタブクラスを生成する必要がある
- 標準 SSL/TLS ソケットファクトリクラス - このリリースでは、標準 Java RMI ソケットファクトリクラス (
javax.rmi.ssl.SslRMIClientSocketFactory
およびjavax.rmi.ssl.SslRMIServerSocketFactory
) が追加された。このクラスは、Java Secure Socket Extension (JSSE) を使用して、Secure Sockets Layer (SSL) または Transport Layer Security (TLS) プロトコルで通信する- inetd/xinetd からの rmid または Java RMI サーバの起動 -
System.inheritedChannel
メソッドにより提供される新しい機能によって、アプリケーションは、仮想マシン (VM) を起動したプロセスから継承されるチャネル (java.nio.channels.SocketChannel
またはjava.nio.channels.ServerSocketChannel
など) を取得することができるようになった。この継承チャネルは、SocketChannel
の場合は単一の着信接続を行うため、ServerSocketChannel
の場合は複数の着信接続を受け入れるために使用できる。その結果、inetd (Solaris(TM) オペレーティングシステム) または xinetd (Linux) によって起動された Java ネットワーキングアプリケーションは、inetd/xinetd から継承されたSocketChannel
またはServerSocketChannel
を取得できるようになったJava Database Connectivity (JDBC)
javax.sql
パッケージの一部として、J2SE バージョン 1.4 に導入されたRowSet
インタフェースによって、軽量な手段で、コンポーネント間でデータを受け渡すことができるようになりました。このリリースでは、開発者を支援するために、
RowSet
オブジェクトを使用できる 5 つのより一般的な方法で、RowSet
インタフェースが (JSR 114 として) 実装されました。これらの実装によって、開発者がそのままでも拡張しても使用できる標準が提供されました。5 つの標準実装は次のとおりです。
JdbcRowSet
- JDBC テクノロジを使用するために実装される結果セットまたはドライバのカプセル化に使用されるCachedRowSet
- データをデータソースから取得していたり、修正したデータをデータソースへ書き込んでいるときを除いて、データソースから切り離され独立して動作する。こ のため、メモリに保存できるだけのデータの軽量なコンテナになっているFilteredRowSet
-CachedRowSet
を拡張し、データのサブセットを取得するために使用されるJoinRowSet
-CachedRowSet
を拡張し、複数のRowSet
オブジェクトのデータの SQLJOIN
を取得するために使用されるWebRowSet
-CachedRowSet
を拡張し、XML データ用に使用される。標準化された XML スキーマを使用して、テーブル形式のコンポーネントを XML で記述するCORBA、Java IDL、および Java RMI-IIOP
CORBA、Java IDL、および Java RMI-IIOP に対する拡張については、「J2SE 1.4.x と 5.0 の間での CORBA 機能の変更点」に記載しています。
Java Naming and Directory InterfaceTM (JNDI)
JNDI には、新たに次の機能が備えられました。
- ディレクトリ/ネーミングサービスからフルネームにアクセスできるようにする、javax.naming.NameClassPair の拡張機能
- 標準の LDAP コントロール (Manage Referral Control、Paged Results Control、および Sort Control) のサポート
- LDAP 名の操作のサポート
国際化
- 2D では、論理フォントを使用して多言語テキストを描画するために、インストール済みのホスト OS フォントを、サポートするすべての書記法に利用できるようになりました。たとえば、タイ語のロケール環境で実行中でありながら韓国語のフォントがインス トールされている場合は、タイ語と韓国語の両方が描画されます。また、J2RE は、lib/fonts/fallback ディレクトリにインストールされている物理フォントを自動的に検出し、この物理フォントを 2D 描画用のすべての論理フォントに追加するようになりました。
- AWT では、Windows 2000/XP の Unicode API を使用するようになりました。このため、いくつかのコンポーネントでは、Windows のロケール設定の制限を受けずに、テキストを処理できるようになっています。たとえば、AWT テキストコンポーネントは、Windows のロケール設定とは関係なく、デーバナーガリー書記法でのテキストに対応し表示できます。
Java サウンドテクノロジ
- ポートが、すべてのプラットフォームで利用できるようになった (RFE 4782900)
- MIDI デバイス I/O が、すべてのプラットフォームで利用できるようになった (RFE 4812168、4782924)
- 最適化された直接オーディオアクセスが、すべてのプラットフォームで実装された (RFE 4908240、4908879)。ネイティブミキシングが備わっているシステム (ハードウェアミキシングを備えた Linux ALSA、有効にした Solaris Mixer、Windows DirectSound) 上では、デフォルトで有効になっている
- 新しいリアルタイムの Sequencer が、MIDI デバイスと連携して、無制限のトランスミッタを使用できるようになった (RFE 4773012)
sound.properties
設定ファイルで、デフォルトのデバイスを選択できるようになった (RFE 4776511)。詳細については、MidiSystem
およびAudioSystem
を参照- MidiDevices は、接続したレシーバとトランスミッタに問い合わせることができるようになった (RFE 4931387、メソッド MidiDevice.getReceiver および MidiDevice.getTransmitter)
AudioFormat
、AudioFileFormat
、およびMidiFileFormat
には、形式をさらに詳細に記述および指定できるプロパティが用意された (RFE 4925767、4666845)- 一連の使いやすいメソッドにより、AudioSystem からラインの検索を簡単に行えるようになった (RFE 4896221)
- Sequencer インタフェースでは、MIDI シーケンスの特定部分をシームレスにループできるように、ループメソッドが拡張された
- Java Sound によって VM が終了するエラーがなくなった (バグ 4735740)
Java 2DTM テクノロジ
追加された 2D 機能には、Linux および Solaris のプリンタサポートの拡張機能、ファイルおよびストリームからフォントを作成する新しいメソッド、VolatileImage および画像のハードウェア高速化関連の新しいメソッドがあります。テキスト描画のコードに対する多くの内部的な変更によって、コードの堅牢さ、パフォーマ ンス、および拡張性が著しく向上しました。他のパフォーマンス機能には、OpenGL (デフォルトでは無効) を使用したハードウェアによる高速描画があります。Image I/O
Image I/O システムには、BMP および WBMP フォーマットのリーダーおよびライターが備わりました。AWT
リリース 5.0 では、多数の AWT の拡張とバグの修正が行われました。この中にはユーザからの要望によるものもあります。まず第一に、新しいMouseInfo
クラスによって、デスクトップでのマウスの位置を判断できるようになりました。新しいWindow
メソッドにより、プラットフォームに適した、新たに作成したウィンドウ (またはフレーム) のデフォルト位置を指定できるようになりました。Window
の別の拡張機能によって、ウィンドウ (またはフレーム) を常に前面に表示できるようになりました (Solaris/Linux のウィンドウマネージャの中には、この機能が動作しないものもあります)。データ転送の領域では、新しいDropTargetDragEvent
API により、ドラッグ操作中に、ドロップターゲットが転送データにアクセスできるようになりました。Swing
1.4.2 リリースでは、XP と GTK という、Swing 用の 2 つの新しい Look & Feel が導入されました。5.0 では、これで中断することなく、Synth というスキン可能な Look & Feel と Ocean というメタル用の新テーマの 2 つの Look & Feel が用意されました。Look & Feel 以外にも、JTable に印刷サポートを追加しました。これにより、JTable の美しい印刷コピーを簡単に得ることができるようになっています。最後に、7 年振りに、jFrame.getContentPane().add() に相当する jFrame.add が作成されました。
一般的な配備
Pack200 は、JSR200 で定義された、JAR ファイルを高圧縮できる新しい形式です。Java Webstart アプリケーションや Java Plug-in アプレットで使用される JAR ファイルのダウンロードサイズを大幅に削減できます。一般的な配備機能および拡張機能の概要については、上記の「一般的な配備」のリンクをクリックしてください。
Java Web Start の配備
Java Web Start の配備機能と拡張機能の概要については、上記のリンクをクリックしてください。
Java Virtual Machine Tool Interface (JVMTI)
JVMTI は、開発および監視ツールで使用する新しいネイティブプログラミングインタフェースです。JVMTI は、Java 仮想マシン (VM) で動作するアプリケーションの状態検査と実行制御の両方の機能を提供し、プロファイリングツール、デバッグツール、監視ツール、スレッド分析ツール、カバ レッジ分析ツールなど、VM の状態その他にアクセスする必要がある各種ツールの VM インタフェースとして機能します。JVMTI は、次回メジャーリリースの J2SE では、現在非推奨になっている JVMPI と JVMDI の代わりになります。
Java Platform Debugger Architecture (JPDA)
JPDA 自体に多くの新機能があり、JPDA の拡張機能ページで詳細に説明しています。
- JDI の読み取り専用のサブセットが定義されました。このサブセットは、デバッグコードを実行できない debuggee (ハングした、またはデバッグモードで開始しなかったコアファイルやプロセスなど) で使用できます。サブセットでは、このような debuggee のデバッグ時に使用する JDI コネクタを作成できます。
- コネクタおよびトランスポート用のサービスプロバイダインタフェースにより、デバッガベンダーさらにはエンドユーザが、自身の JDI コネクタとトランスポートを作成し、それらを JPDA リファレンス実装に接続できるようになりました。たとえば、デバッガと debuggee 間で SSL を使用して通信できるように、コネクタを用意することができます。
- JDI は、新しい言語機能 (総称、列挙型、変数引数) をサポートしています。
- JPDA の最下部層である、Java Virtual Machine Debugger Interface (JVMDI) は推奨されなくなり、次回メジャーリリースの J2SE では除かれる予定です。この代わりに、Java Virtual Machine Tool Interface (JVMTI) が提供されます。これは、さらに一般的なインタフェースであり、デバッグのほかにプロファイルを行うこともできます。現在のプロファイリングインタフェー スである、Java Virtual Machine Profiling Interface(JVMPI) も推奨されなくなり、次回メジャーリリースで除かれる予定です。
- JPDA リファレンス実装には新しい JDI コネクタが含まれています。これを使用すると、コアファイルおよびハングプロセスをデバッグできます。
Java コンパイラ (javac)
コンパイラオプションは次のとおりです。
-source 1.5
- 5.0 固有の言語機能をソースファイルで使用できるようにする。(-target 1.5
を想定)-target 1.5
- javac が、ライブラリおよび仮想マシンでの 5.0 固有の機能を使用できるようにする-Xlint
- javac が有効だが疑わしい場合に、問題を含んだプログラム構造に関する警告メッセージを生成できるようにする。たとえば、Serializable
を実装するが、serialVersionUID
を定義していないクラスを宣言している場合-d32
- 32 ビット Solaris または Linux プラットフォームを指定する-d64
- 64 ビット Solaris または Linux プラットフォームを指定するJavadoc ツール
「Javadoc 5.0 の新機能」を 参照してください。注釈処理ツール (
apt
)apt
は、注釈処理用の新しいコマンド行ユーティリティです。このユーティリティには、プログラム annotations を処理する、一連のリフレクティブ API とサポートインフラストラクチャが含まれています。
サポー トするシステム構成
詳細については、上記のリンクをクリックしてください。
64 ビット AMD Opteron プロセッサ
J2SE 5.0 では、AMD Opteron プロセッサが、Suse Linux および Windows 2003 上のサーバ VM でサポートされています。
Copyright © 2004 Sun Microsystems, Inc. All Rights Reserved. |
|