Java 2 SDK, Standard Edition (J2SETM) バージョン 1.4 の新しい機能を以下に示します。機能全体の一覧 (Java 2 SDK, Standard Edition の以前のバージョンから繰り越された機能も含む) については、http://java.sun.com/j2se/1.4/ja/docs/ja/index.html を参照してください。
Java 2 Platform には XML 処理用の Java API が追加されました。J2SE 1.4.0 は基本的に XML 文書の処理を API 標準セットでサポートします。詳細については、http://java.sun.com/j2se/1.4/ja/docs/ja/guide/xml/index.html を参照してください。
新しい入出力 (NIO) API は、バッファの管理、文字セットのサポート、正規表現のマッチング、ファイルの入出力、およびスケーラブルなネットワークの入出力に新しい機能と強化された機能を提供します。詳細については、http://java.sun.com/j2se/1.4/ja/docs/ja/guide/nio/index.html を参照してください。
JavaTM Cryptography Extension (JCE)、JavaTM Secure Socket Extension (JSSE)、およびJavaTM Authentication and Authorization Service (JAAS) のセキュリティ機能はオプションパッケージではなく、J2SE v1.4 に統合されました。
新しいセキュリティ機能は次の 2 つです。
JavaTM GSS-APIを使用すると、Kerberos 5 機構を使用して通信するアプリケーション間でメッセージを安全に交換できます。詳細については、http://java.sun.com/j2se/1.4/ja/docs/ja/guide/security/jgss/tutorials/index.html を参照してください。
JavaTM Certification Path API の java.security.cert パッケージには、認証パス (「認証チェーン」とも呼ぶ) を構築および検証できる新しいクラスとメソッドが含まれています。詳細については、http://java.sun.com/j2se/1.4/ja/docs/ja/guide/security/certpath/CertPathProgGuide.html を参照してください。
輸入管理制限により、J2SE v1.4 に付属する JCE 権限ポリシーファイルは「強力」であるが使用される暗号化を制限します。JCE 権限ポリシーファイルには、「無制限」のバージョン (つまり、暗号化の強度に制限をかけない) もあります。
このリリースの JSSE 実装には、強力な暗号群が含まれています。しかし、米国の輸出管理制限のため、デフォルトの SSLSocketFactory と SSLServerSocketFactory を変更することは禁止されています。詳細については、http://java.sun.com/j2se/1.4/ja/docs/ja/guide/security/jsse/JSSERefGuide.html にある『JSSE リファレンスガイド』を参照してください。
JAAS が J2SE に統合されているので、java.security.Policy API がプリンシパルベースの照会を処理し、また、デフォルトのポリシー実装がプリンシパルベースの許可エントリをサポートします。したがって、アクセス制御は、どのコードが実行しているかだけではなく、だれがそのコードを実行しているかにより行うことができます。
動的ポリシーのサポートが追加されました。バージョン 1.4 より前の J2SE リリースでは、クラスのアクセス権へのバインドは静的に行われており、セキュリティポリシーはクラスのロード中に照会されていました。したがって、バインドの寿命はクラスローダの寿命によって制限されていました。バージョン 1.4 では、このバインドはセキュリティ検査により必要となるまで行われません。つまり、バインドの寿命はセキュリティポリシーの寿命によって制限されます。
J2SE 1.4 におけるセキュリティの詳細については、http://java.sun.com/j2se/1.4/ja/docs/ja/guide/security/index.html を参照してください。
Java 2DTM 技術には、性能の向上、オフスクリーン画像のハードウェア高速化のサポート、プラグイン可能な画像入出力フレームワーク、新しい印刷サービス API、いくつかの新しいフォント機能など、新しい機能が数多く含まれています。詳細については、http://java.sun.com/j2se/1.4/ja/docs/ja/guide/2d/new_features.html を参照してください。
Java の Image I/O フレームワークが提供するプラグイン可能なアーキテクチャを使用すれば、ファイルに格納されている画像にネットワーク経由でアクセスして処理できます。このフレームワークでは、画像のロードと保存のための API が J2SE 1.4 以前のものよりもはるかに柔軟で強力な機能を提供します。詳細については、http://java.sun.com/j2se/1.4/ja/docs/ja/guide/imageio/index.html を参照してください。
Java 印刷サービスは新しい Java 印刷サービス API であり、クライアントとサーバのアプリケーションは次のことを行います。
能力に適した印刷サービスの検出および選択
印刷データの形式の指定
印刷する文書タイプをサポートするサービスへの、印刷ジョブの実行依頼
詳細については、http://java.sun.com/j2se/1.4/ja/docs/ja/guide/jps/index.html を参照してください。
Abstract Window Toolkit (AWT) パッケージセンターが変更されて、グラフィカルユーザインタフェースを提供するプログラムの堅牢性、動作、および性能が改善されました。次の点が改善されています。
新しいフォーカスアーキテクチャが実装され、プラットフォームの不一致や AWT と Swing の構成要素間の非互換性が原因であったフォーカス関連のバグが数多く修正されました。
新しい全画面排他モードでは、ウィンドウシステムを中断し、画面に直接描画することによって、高性能なグラフィックスをサポートします。このモードは、描画が多いアプリケーション (ゲームなど) で効果的です。
ディスプレイ、キーボード、マウスをグラフィックス環境でサポートできるかどうかを示す新しいグラフィックス環境メソッドによって、ヘッドレスサポートが有効になりました。
フレームの外観の指定を完全に制御する必要があるアプリケーションのために、ネイティブのフレーム装飾を無効にできるようになりました。この機能を有効にすると、ネイティブの画面構成要素 (タイトルバー、システムメニュー、ボーダーなど) を描画しません。
新しい組み込み Java のサポートによって、マウスホイール (マウスのアジャストボタンの代わりに付いているスクロール用ホイール) によるスクロールが有効になりました。また、新しいマウスホイールリスナークラスによって、マウスホイールの動作をカスタマイズできるようになりました。
AWT パッケージは完全な 64 ビット準拠に変更されて、64 ビットアドレスと 32 ビットアドレスの両方の Solaris マシン上で動作できるようになりました。
スピナーコンポーネントは単一行の入力フィールドであり、このフィールドの小さな上下の矢印ボタンを使用することで、ユーザは一連の値の中から 1 つの番号または値を選択できます。
新しい書式付きテキストフィールドコンポーネントを使用すると、10 進数の通貨値だけを受け入れるテキストフィールドなどのように、日付、数字、および文字列を書式化できます。
新しいドラッグ&ドロップアーキテクチャによって、コンポーネント間でシームレスなドラッグ&ドロップを行うことができます。また、ユーザがカスタマイズした Swing コンポーネントにも簡単にドラッグ&ドロップを実装できます。一対のメソッドを作成し、自分のデータモデルの詳細を記述するだけで使用できます。
進捗バーコンポーネントは不確定な状態を表示できるように強化されました。不確定進捗バーは完全度を表示するのではなく、絶えず動くアニメーションを使用することで、時間のかかる操作が進行していることをユーザに伝えます。
タブ区画コンポーネントはスクロール可能なタブをサポートするように強化されました。この機能を有効にすると、すべてのタブが単一のタブ表示区域内に収まらない場合、タブ区画構成要素は複数のタブ (表示区域) を重ねて表示するのではなく、単一のスクロール可能なタブ (表示区域) を表示します。
Popup クラスと Popup Factory クラスは以前は非公開でしたが、今回は公開されているので、開発者は独自のポップアップをカスタマイズまたは作成できます。
新しいフォーカスアーキテクチャが Swing に完全に統合されました。
詳細については、http://java.sun.com/j2se/1.4/ja/docs/ja/guide/swing/SwingChanges.html を参照してください。
Swing は、アプリケーション間のデータ転送に新しいサポートを追加しました。ドラッグ&ドロップ操作とは、グラフィカルなポインティングデバイスでのジェスチャーによって特定されるデータ転送要求のことです。コピー / ペーストの場合、データ転送は多くの場合キーボードから行われます。データ転送には、ドラッグ&ドロップによるデータ転送と、カット / コピー / ペーストによるクリップボード経由のデータ転送の 2 つの形式があります。詳細については、http://java.sun.com/j2se/1.4/ja/docs/ja/guide/swing/1.4/dnd.html を参照してください。
Java の ロギング API は顧客サイトにおけるソフトウェアのサービスおよび保守を簡単にするものであり、エンドユーザ、システム管理者、フィールドサービスエンジニア、およびソフトウェア開発チームによる解析に適したログレポートを生成します。ロギング API は、アプリケーションまたはプラットフォームにおけるセキュリティの障害、構成のエラー、性能のボトルネック、バグなどの情報を捕捉します。詳細については、http://java.sun.com/j2se/1.4/ja/docs/ja/guide/util/logging/index.html を参照してください。
Java Web Start 製品は J2SE 1.4.0 にバンドルされている新しいアプリケーション配備テクノロジです。Java Web Start を使用すると、Web ページのリンクをクリックするだけでアプリケーションを起動できます。アプリケーションがユーザのコンピュータ上に存在しない場合、Java Web Start は自動的に必要なファイルをすべてダウンロードします。そして、Java Web Start はダウンロードしたファイルをユーザのコンピュータに格納するので、ユーザはいつでもそのアプリケーションをデスクトップ上のアイコン、または Web ページのリンクから起動することができます。詳細については、http://java.sun.com/j2se/1.4/ja/docs/ja/guide/jws/index.html を参照してください。
新しい持続モデルは、JavaBeans のグラフを持続形式にまたは接続形式から変換するときのプロセスを処理するように設計されています。新しい API は JavaBeans コンポーネントのグラフのアーカイブをそのプロパティのテキスト表現として作成するのに適しています。詳細については、http://java.sun.com/j2se/1.4/ja/docs/ja/guide/beans/changes14.html を参照してください。
JDBCTM 3.0 API には java.sql と javax.sql のパッケージが含まれており、Java プログラミング言語からの汎用データアクセスを提供します。JDBC 3.0 API を使用すると、リレーショナルデータベースからスプレッドシートや通常のファイルまで、ほとんどどのデータソースにもアクセスできます。さらに、JDBC テクノロジは、ツールや代替インタフェースが構築することができる共通の基礎を提供します。
JDBC 3.0 API を使用すると、次のことを行うことができます。
トランザクション内のセーブポイントの設定
トランザクションがコミットされた後でも、結果セットを開いたままにしておく
準備済み文の再利用
準備済み文へのパラメータについてのメタデータの取得
自動的に生成される鍵の取得
一度に複数の結果セットを開く
新しい JDBC データタイプには BOOLEAN と DATALINK の 2 つがあります。DATALINK タイプを使用すると、データソースの外からデータを管理できます。このリリースはまた、JDBC Service Provider Interface と Connector アーキテクチャ間に関係を確立します。
詳細については、http://java.sun.com/j2se/1.4/ja/docs/ja/guide/jdbc/index.html を参照してください。
Java 2 Platform にはアサーション機能が追加されました。アサーションとは、プログラマがコンピュータプログラムの状態について真であると信じていることを示すブール型式のことです。たとえば、一覧をソートした後、プログラマはその一覧が昇順であることを表明できます。実行時にアサーションを評価して妥当性を確認すると、プログラムの動作についてのプログラマの思い違いを素早く見つけることができるので、コードの品質を向上させるためのもっとも強力なツールの 1 つとなります。詳細については、このマニュアルの「アサーション機能」を参照してください。
Preferences API は、ユーザの設定および構成データを管理するための新しい簡単な API です。アプリケーションは異なるユーザ、環境、およびニーズに適合するために設定および構成データを必要とします。アプリケーションはこのような設定および構成データを格納、取得、および変更するための方法を必要とします。このニーズに適合するのが Preferences API です。Preferences API は java.util.Properties クラスのもっとも一般的な使用方法を置き換えるものであり、このクラスの軽量さを保持しながら、さまざまな点を訂正しています。詳細については、http://java.sun.com/j2se/1.4/ja/docs/ja/guide/lang/preferences.html を参照してください。
推奨標準とは、Java Community Process (JCP) 以外の標準化プロセスで定義された Java API のことです。推奨標準は JCP 以外で定義されているので、Java 2 Platform のリリース間に改訂されることがあります。推奨標準優先機構を使用すると、開発者とソフトウェアベンダーは推奨標準の新しいリビジョンの恩恵を受けることができ、Sun からリリースされている Java 2 Platform に含まれている推奨標準よりも新しいバージョンを提供できます。推奨標準優先機構の詳細については、http://java.sun.com/j2se/1.4/docs/guide/standards/ にある Web 上のドキュメントを参照してください。
Java HotSpotTM Server VM を使用する場合、Solaris オペレーティング環境 (SPARC 版) の J2SE 1.4.0 は 64 ビット SPARC V9 プラットフォーム上での 64 ビット動作をサポートします。これによって、4G バイト (32 ビット VM がサポートできる絶対最大値) より大きなヒープをサポートできます。Java HotSpot Server VM では、適切なコマンド行フラグを使用することによって、32 ビットまたは 64 ビットのどちらかの動作をさせることができます。64 ビット VM を使用する場合、ユーザのプログラムが参照変数をアクセスするのに費やす時間によって異なりますが、約 15% から 25% の性能の低下が見られることがあります。64 ビット VM を使用する場合、J2SE 1.4.0 は 32 ビット共有ライブラリをサポートしません。ネイティブ (Java Native Interface) コードは 64 ビットモードでコンパイルし直す必要があります。
このリリースの Java 仮想マシンでは、いくつかの機能が強化されました。
シグナルチェーン機能
64 ビット SPARC V9 プラットフォーム用の 64 ビットサポート
エラー報告機構
Java Native Interface (JNI) 関数の追加チェックを実行するための新しいコマンド行オプション
ガベージコレクションのイベントを記録するための新しい機能
詳細については、http://java.sun.com/j2se/1.4/ja/docs/ja/guide/vm/index.html を参照してください。
このリリースでは性能も強化されました。詳細については、http://java.sun.com/j2se/1.4/ja/docs/ja/guide/performance/index.html を参照してください。
新しい機能には TCP と UDP に基づくアプリケーションにおける IPv6 のサポートと接続 (バインド) されていないソケットのサポートが含まれており、より柔軟にソケットを作成、バインド、および接続できるようになりました。Java Secure Socket Extension という機構はソケット経由で送信されるデータを暗号化し、新しいクラス URI はプロトコルハンドラが存在しなくても URI を構築および構文解析できるようにします。FTP Protocol Handler は現在の標準に準拠するように徹底的に見直されました。デフォルトの文字セットは現在 UTF8 であり、他の文字スキームを有効にするための API が追加されました。
新しいクラス NetworkInterface を使用するとインタフェースとアドレスを列挙できるようになり、InetAddress の JNDI DNS SP Support を使用すると Pure Java ネームサービスプロバイダを構成できるようになります。TCP 帯域外データは従来のアプリケーションをサポートします。つまり、UDP Connection 機能は宛先アドレスを OS に登録するので、非同期エラーを UDP ソケットに戻すことができます。また、完全な SOCkS V5 と V4 TCP サポートには、どのバージョンを使用するかについてのプロキシとの自動ネゴシエーションが含まれています。さらに、ストリーミング、要求ヘッダーと応答ヘッダーの処理、およびエラー処理において改良が行われました。
詳細については、http://java.sun.com/j2se/1.4/ja/docs/ja/guide/net/enhancements14.html を参照してください。
RMI ランタイム実装では現在、以前のリリースで行われていたクライアント側のスタックトレース情報の保存に加えて、リモート呼び出しからスローされた例外についてのサーバ側のスタックトレース情報も保存します。したがって、このような例外がクライアントコードにアクセス可能になったとき、クライアントのスタックトレースには、クライアント側のトレースデータに続く、オリジナルのサーバ側のトレースデータがすべて含まれています。
J2SE 1.4.0 では、java.rmi.server.RMIClassLoader の特定の静的なメソッドが自分の動作を新しいサービスプロバイダインタフェース java.rmi.server.RMIClassLoaderSpi に委譲します。このサービスプロバイダオブジェクトを構成すると、特定のアプリケーションに対する RMI の動的クラスロード動作を強化できます。デフォルトでは、サービスプロバイダは RMIClassLoader のすべての静的なメソッドについて標準の動作を実装します。
現在では、java.rmi.server.hostname プロパティを動的に更新することによって、将来のエクスポートで新しいホスト名を使用することを示すことができます。したがって、新しいホスト名は上記プロパティが更新された後にエクスポートされたオブジェクトのスタブに含まれるようになります。
詳細については、http://java.sun.com/j2se/1.4/ja/docs/ja/guide/rmi/relnotes.html を参照してください。
このリリースの直列化 API の機能には、次の変更と強化が行われました。
データ直列化ストリームで共有解除されることが判明しているオブジェクトの直列化解除のサポート
クラス定義された readObjectNoData メソッドのサポート
重要なバグの修正
詳細については、http://java.sun.com/j2se/1.4/ja/docs/ja/guide/serialization/relnotes14.html を参照してください。
J2SE 1.4.0 では、Java Naming and Directory InterfaceTM (JNDI) に次の機能強化が行われました。
Internet Domain Naming System (DNS) サービスプロバイダは J2SE 1.4.0 の一部になりました。 この構成要素によって、アプリケーションは DNS に格納されたデータが読めるようになります。
JNDI Lightweight Directory Access Protocol (LDAP) サービスプロバイダのセキュリティが強化されて、アプリケーションは既存の LDAP 接続上で安全なセッションを確立し、異なる認証プロトコルを使用できるようになりました。
JNDI CORBA Object Services (COS) ネーミングサービスプロバイダは Interoperable Naming Service (INS) 仕様 (99-12-03) をサポートします。
詳細については、http://java.sun.com/j2se/1.4/ja/docs/ja/guide/jndi/index.html#14changes を参照してください。
Java 2 Platform の一部として出荷される ORB には現在、Portable Object Adapter (POA) 機能が含まれています。ORB を使用すると、クライアントは、同じまたは異なるマシン上で動作しているサーバがサポートしているオブジェクト上で、メソッド呼び出しを行うことができます。POA 機能を使用すると、プログラマは異なる ORB 製品間で移植可能なオブジェクト実装を構築できるので、たとえば、持続性のある識別情報を持つオブジェクトをサポートできます。ほかにも、Portable Interceptors、Interoperable Naming Service、GIOP 1.2 のサポート、Dynamic Management of Any values などの新しい機能や、持続ネーミングサービスなどの機能をサポートする新しいツールが含まれます。
J2SE v.1.3 と J2SE v.1.4 における Java IDL の違いの詳細については、http://java.sun.com/j2se/1.4/ja/docs/ja/guide/idl/jidlChanges.html を参照してください。一般的な情報については、http://java.sun.com/j2se/1.4/ja/docs/ja/guide/idl/index.html を参照してください。
機能強化された Java Platform Debugger Architecture を含んだ J2SE 1.4.0 は、次の新しい機能を持つようになりました。
Java HotSpotTM 仮想マシンは現在「フルスピードデバッグ」を使用します。以前のバージョンの Java HotSpot では、デバッグが有効であると、プログラムはインタプリタを使用した場合にのみ実行できました。現在では、Java HotSpot 技術の性能を完全に活用でき、デバッグを有効にしたままプログラムを実行できるようになりました。性能が改善されたことによって、実行に時間がかかるプログラムでも簡単にデバッグできます。また、テストをフルスピードで行い、デバッガを起動して例外を発生させることもできます。
HotSwap 機能が追加されて、デバッガの制御下にある間でもクラスを更新できるようになりました。
EventRequests は現在インスタンスフィルタを指定できるようになり、要求によって生成されるイベントを、現在実行しているインスタンスが指定されたオブジェクトであるイベントだけに制限できるようになりました。
Java Platform Debugger Architecture が強化されて、Java プログラミング言語以外のソースを Java プログラミング言語ソースに変換してデバッグできるようになりました。
ターゲットの VM 終了通知を制御する要求を発行できるようになって、クリーンシャットダウン同期を行うことができるようになりました。
J2SE 1.4.0 における文字の処理はバージョン 3.0 の Unicode 標準に基づいています。このような文字の処理は、java.lang パッケージ内の Character クラスと String クラスに影響を与えると同時に、java.text パッケージ内の照合と双方向テキスト解析機能にも影響を与えます。
J2SE 1.4.0 は Thai (タイ語) と Hindi (ヒンディー語) をすべての機能においてサポートします。サポートされるロケールと書記法の詳細については、『サポートされているロケール』オンライン文書を参照してください。
クラス java.util.Currency が導入されて、ロケールとは無関係に通貨を参照できるようになりました。java.text.NumberFormat には、金額を書式化するための通貨を指定する新しいメソッドとそれに関連するクラスが追加されました。
Java Plug-in 1.4 には、次の新しい機能が追加されました。
ブラウザではなく、Java Secure Socket Extension (JSSE) で HTTPS をサポートできるようになりました。
アプレットのキャッシュ方法が強化されて、JAR やクラスファイルに加えて、GIF、JPEG、および AU などのファイルをキャッシュできるようになりました。
ブラウザのページが変わっても、アプレットは持続するようになりました。
アプレットの互換性が様々な点で強化されて、ほとんどの JDK 1.1 アプレットをシームレスに Java 2 で実行できるようになりました。
w3c 定義の標準インタフェースで DOM にアクセス可能
アサーションとロギングのサポート
アプレットのユーザビリティが強化され、アプレットのロードの進捗バーをカスタマイズ可能
Java Console のオプションが強化され、アプレットの動作中でも、プロキシの設定やポリシーファイルなどを動的に再構成可能
詳細については、http://java.sun.com/j2se/1.4/ja/docs/ja/guide/plugin/index.html を参照してください。
J2SE 1.4 で強化された Collections フレームワークの機能には、ランダムアクセスを公示するためのマーカーインタフェース、同値性ではなく同一性に基づいた Map、挿入順に保存する Map と Set の実装、および一覧の値を操作および返すためのいくつかの新しいアルゴリズムが含まれます。詳細については、http://java.sun.com/j2se/1.4/ja/docs/ja/guide/collections/changes4.html を参照してください。
J2SE 1.4.0 は、次の分野でユーザ補助機能の新しいサポートを提供します。
JTabbedPane 上ではニーモニックタブで移動可能
ユーザ補助技術によりテキストを編集可能
HTML コンポーネントにアクセス可能
Swing アクションにアクセス可能
リスト項目の最初の文字を使用してリストを移動可能
コンポーネントの機能 DATE_EDITOR、FONT_CHOOSER、GROUP_BOX、SPIN_BOX、STATUS_BAR が追加
画面拡大機能または画面読取機能の存在を示す属性と、Java 仮想マシンにロードするユーザ補助技術を指定する属性の追加
詳細については、http://java.sun.com/j2se/1.4/ja/docs/ja/guide/access/index.html を参照してください。
新しいパッケージ java.util.regex には、正規表現で指定されたパターンに文字シーケンスを一致させるためのクラスが含まれています。詳細については、http://java.sun.com/j2se/1.4/docs/api/java/util/regex/package-summary.html にある java.util.regex 用の API 指定を参照してください。
呼び出し側が確実性を指定しなくても素数を生成できる新しい効率的なメソッドが java.math.BigInteger に追加されました。詳細については、http://java.sun.com/j2se/1.4/ja/docs/ja/guide/math/enhancements14.html を参照してください。
一部のリフレクション操作、特に、java.lang.reflect.Field 、java.lang.reflect.Method.invoke()、Java.lang.reflect.Constructor.newInstance()、および Class.newInstance() がより高い性能のために書き直されました。リフレクションの呼び出しとインスタンス化は以前のリリースと比べて何倍も速くなっています。詳細については、http://java.sun.com/j2se/1.4/ja/docs/ja/guide/reflection/index.html を参照してください。
J2SE 1.4 では、Java Native Interface (JNI) が強化されて、java.nio パッケージの新しい機能「ダイレクトバッファ」を反映するようになりました。ダイレクトバッファの内容は潜在的に、通常のガベージコレクトされたヒープの外側にあるネイティブメモリ内に格納できます。また、新しい呼び出しインタフェースルーチン AttachCurrentTreadAsDaemon を使用すると、ネイティブコードはデーモンスレッドを仮想マシンに接続できます。これは、シャットダウン時に、このスレッドが終了するのを VM が待つ必要がないときに便利です。詳細については、http://java.sun.com/j2se/1.4/ja/docs/ja/guide/jni/jni-14.html にある『JNI Enhancements』オンライン文書を参照してください。
詳細については、http://java.sun.com/j2se/1.4/ja/docs/ja/tooldocs/tools-changes.html にある『ツールの変更点』オンライン文書を参照してください。
java アプリケーション起動ツールは、新しいアサーション機能をサポートするためのコマンド行オプションをサポートします。SolarisTM オペレーティング環境 (SPARCTM 版) では、64 ビットまたは 32 ビットの動作を指定するための新しいコマンド行オプションが利用できます。新しいオプション -Xloggc:file は各ガベージコレクションイベントを指定されたファイルに記録します。新しいオプション -Xcheck:jni は、少し性能が落ちますが、Java Native Interface (JNI) 機能の追加チェックを実行します。
javadoc ツールには、いくつかの新しいタグ、十数個の新しいオプション、doc コメントのより洗練された継承、HTML 出力に対するより多くの制御、ドックレット API の改良、よりわかりやすいエラーメッセージ、および数十個のバグフィックスが含まれており、より実行しやすくなっています。詳細については、http://java.sun.com/j2se/1.4/ja/docs/ja/tooldocs/javadoc/whatsnew-1.4.html にある『Javadoc 1.4 の新機能』オンライン文書を参照してください。別の製品としてダウンロードできる MIF ドックレット (http://java.sun.com/j2se/javadoc/mifdoclet) は大幅に更新されて、API 文書が FrameMaker と PDF の形式で作成されています。
native2ascii ツールには、Unicode エンコーディングで符号化されたソースファイルを正しく処理できるバグフィックスが含まれています。
idlj ツールは現在、Portable Servant Inheritance Model に従ってサーバ側バインディングを生成します。この変更によって、デフォルトでは新しい POA バインディングが生成されます。下位互換性のあるサーバ側バインディングを生成するために、新しいコマンド行オプションが追加されました。Portable Servant Inheritance Model の詳細については、http://java.sun.com/j2se/1.4/ja/docs/ja/guide/idl/POA.html を参照してください。idlj ツールの詳細については、http://java.sun.com/j2se/1.4/ja/docs/ja/guide/rmi-iiop/toJavaPortableUG.html を参照してください。
orbd (Object Request Broker Daemon) ツールは、一時ネームサービス tnameserv に代わる新しいツールです。ORBD には、一時ネームサービスと持続ネームサービスの両方が含まれています。orbd ツールを使用すると、クライアントは CORBA 環境内のサーバ上にある持続オブジェクトを透過的に配置して呼び出すことができます。orbd ツールはサーバマネージャ、相互運用ネームサービス、およびブートストラップネームサーバの機能を持っています。 servertool と一緒に使用すると、クライアントがサーバにアクセスしたい場合、サーバマネージャがサーバを検出、登録、および起動します。詳細については、http://java.sun.com/j2se/1.4/ja/docs/ja/guide/idl/orbd.html を参照してください。
servertool が J2SE 1.4 で新たに追加されました。 servertool は、サーバを登録、登録解除、起動、およびシャットダウンするための使いやすいインタフェースをアプリケーションプログラマに提供します。詳細については、http://java.sun.com/j2se/1.4/ja/docs/ja/guide/idl/servertool.html を参照してください。
rmic コンパイラには、Remote Method Invocation をサポートする Portable Object Adapter (POA) を有効にするための新しいオプションが追加されました。POA は、ベンダーの ORB (あるいは、他の使用) 間における移植を可能にします。POA の詳細については、http://java.sun.com/j2se/1.4/ja/docs/ja/guide/idl/POA.html を参照してください。rmic コンパイラで POA サポートを有効にするには、引数 rmic -iiop -poa を使用します。rmic コンパイラの詳細については、http://java.sun.com/j2se/1.4/ja/docs/ja/tooldocs/solaris/rmic.html を参照してください。
グラフィカルな Policy Tool ユーティリティは強化されて、指定されたアクセス制御権をどのユーザに与えるかを示すプリンシパルフィールドを指定できるようになりました。