|
リリースノート
|
![]() |
概要
ネットワーク
AWT
Java 2DTM テクノロジ
ドラッグ&ドロップ
国際化
ユーザ補助機能
CORBA、Java IDL、および Java RMI-IIOP
仮想マシン
New I/O (NIO) API
Java Platform Debugger Architecture テクノロジ
Java Web Start
Java Sound に影響を及ぼす Java Media Framework のバグ
NetscapeTM 6 ブラウザにおける Java Plug-in テクノロジ
SolarisTM 上での OpenWindows との適合性
Microsoft Windows でのプラットフォームのタイムゾーンの検出
Applet クラスのバグ
Solaris オペレーティング環境のパッチおよびカーネル更新
Solaris オペレーティング環境でのアンインストールのバグ
Linux 使用時の注意
Active X ブリッジの削除
Forte for Java および NetBeans
ツールおよびユーティリティ
Jar ファイルの変更
直列化
JavaTM 2 SDK, Standard Edition, v1.4.0 (J2SDK 1.4.0) は、多数の機能分野で新機能の追加および拡張が行われた Java プラットフォームのアップグレードリリースです。J2SDK 1.4.0 の新機能は、Java Community ProcessSM プログラムに従って開発されました。詳細については、以下のリンクを参照して下さい。
1.4.0 での新機能および拡張機能以降は、既知のバグ、回避方法、およびこのリリースで注意すべきほかの重要な問題について説明します。
このリリースのネットワーク機能に関する既知のバグおよびそのほかの問題については、ネットワークに関するリリースノートを参照してください。
このリリースの AWT 機能に関連する注を以下に示します。
- アジア系言語版の Windows NT をインストールしたマシンに、英語版の Visual C++ 6.0 をインストールしている場合、TextArea コンポーネント内でのアジア系言語のテキスト描画時に、表示のがたつきが見られる場合があります。アジア系言語の Windows NT 4.0 の稼動するマシンに Microsoft Exchange または Microsoft Office 97 をインストールする場合にも、同様の現象が見られる場合があります。この問題は日本語版の Windows NT で報告されていますが、中国語や韓国語など、他の非ラテン文字版の Windows NT でも発生する可能性があります。
問題は、これらのプログラムがアジア系言語用の Riched32.dll ファイルを英語版のファイルに置き換えてしまう場合に発生します。アジア系言語用の Riched32.dll にファイルと置き換えることにより、問題の発生を回避できます。
- AWT Robot クラスのバグにより、Microsoft Windows プラットフォームで -Xfuture フラグを使用した際に、特定の状況で EXCEPTION_ACCESS_VIOLATION の発生とともに Java 仮想マシンがクラッシュすることがあります。この問題を回避するには、-Xfuture を使用せずに実行します。この問題は、J2SE 1.4.0 プラットフォームの最終リリースで修正される予定です。
次の説明は、このリリースの Java 2D 機能に適用されます。
- Microsoft Windows プラットフォームでイメージをスケーリングするために、ハードウェアアクセラレーションが可能になりました。ただし、品質と整合性を確保するため、この機能はデフォルトでは無効に設定されています。このパフォーマンス改良が有益となるユーザ、およびこの機能を使用してアプリケーションの結果を試してみたいユーザは、実行時フラグ sun.java2d.ddscale を true に設定することで、この機能を有効にできます。たとえば、次のようにすると、ハードウェアアクセラレーションによるスケーリングを有効にしてアプリケーションを実行できます。
java -Dsun.java2d.ddscale=true
- このリリースでは、GlyphVector.getGlyphOutline が返すアウトラインと GlyphVector.getGlyphVisualBounds が返す境界の位置の決まり方が変更されました。従来のリリースではアウトラインおよび境界の位置は (0, 0) の周辺になりましたが、このリリースでは各グリフの原点の周辺になります。GlyphVector.getGlyphLogicalBounds の動作と結果を一貫させるために、この変更が行われました。
- High Performance Graphics ホワイトペーパーがオンラインで利用可能になりました。
次は、このリリースのドラッグ&ドロップに関する注です。
- Solaris および Linux リリースの J2SDK 1.3 では、アプリケーションが java.awt.dnd API を介してコンポーネントを DragSources として認識しない場合でも、いくつかの AWT 重量コンポーネントで、マウスのアジャストボタンを使用したデフォルトのドラッグ動作が実行されました。これらのコンポーネントは Motif ピアを使用して実装されており、Motif はデフォルトでこれらのピアに対するアジャストボタンを使用したドラッグ動作を提供します。
AWT の設計および Motif ライブラリのバグために、このデフォルト動作は安定性を損なう多数の問題の原因となってきました。このリリースでは、AWT の安定性を損ないつつドラッグ&ドロップ機能を継続するのではなく、実装内で明示的にこの機能を無効にすることを選択しました。
開発者は、java.awt.dnd API を使用して、これらのコンポーネントをアプリケーション内で引き続き DragSources として認識させることが可能です。これは、有効に機能すると同時にサポートされている動作です。
この方法により、Solaris および Linux だけでなく、すべてのプラットフォームでこれらのコンポーネントのドラッグ操作がサポートされるため、Motif の動作に依存するデフォルトの方法よりも優れています。
- ドラッグ&ドロップ機能の変更については、J2SE 1.3.1 のバグ 4313374 の修正で紹介されています。 変更された動作は、J2SE 1.4.0 にも含まれています。 新しい動作では、以前に行なったドラッグ&ドロップ操作が完了するまでドラッグ操作はブロックされます。 J2SE の 1.3.1 より以前のバージョンでは、ほかのドラッグ&ドロップ操作が進行中であっても、新しくドラッグ操作を開始できました。
正しく構築されたアプリケーションは、DropTargetDropEvent.rejectDrop() または DropTargetDropEvent.acceptDrop(int) のどちらか、あるいは両方を呼び出し、DropTargetListener.drop(DropTargetDropEvent) の中で DropTargetDropEvent.dropComplete(boolean) を呼び出します。 これにより、ドラッグ&ドロップサブシステムがほかのドラッグ&ドロップ操作を認識して開始する前に進行中のドラッグ&ドロップ操作が終了します。 よって、動作に関するこの変更は、記述済みのアプリケーションにとっては悪影響でしかありません。
このセクションの説明は、J2SDK 1.4.0 の国際化の機能に適用されます。
- URL エンコーディングを必要とする文字を含んだパスに、J2SDK または Java 2 Runtime Environment (J2RE) がインストールされている場合、java.text および java.util パッケージの getAvailableLocales メソッドが正しく動作しないので、英語以外のロケールがサポートされていないといった誤った印象を与えてしまいます。Microsoft Windows プラットフォームでは、J2RE のデフォルトのインストールディレクトリが空白文字を含んだ C:\Program Files\... となり、URL エンコーディングを必要とします。このため、J2RE のデフォルトインストールでは必ずこの問題が発生します。この問題は、バグ 4638772 で追跡されています。
- java.text.NumberFormat、DecimalFormat、および DecimalFormatSymbol クラスで使用される、欧州通貨同盟加盟国のデフォルト通貨が、加盟各国の 2002 年 1 月 1 日 0:00 (現地時間) 以降に作成されるインスタンスから、ユーロに変わります。アプリケーションは、これらのクラスおよび新規 java.util.Currency クラスに対して新規 API を使用して、使用する通貨を指定できます。詳細は、RFE 4311107 および 4290801 を参照してください。
- 新規メソッド 「createInputMethodJFrame」が java.awt.im.spi.InputMethodContext インタフェースに追加されて、Java インプットメソッドに Swing ベースのインプットメソッドウィンドウが提供されます。既存のインタフェースに新規メソッドを追加すると、通常、上位バイナリ互換性が無効になりますが、java.awt.im.spi.IputMethodContext インタフェースが J2RE により実装される場合のみ、既存の Java アプリケーションに対する互換性の問題は発生しません。J2SDK 1.4.0 に基づいて新規の Java インプットメソッドを記述すると、このメソッドは以前のリリースでは無効であるため、インプットメソッドの実装者はリフレクション機構を使用してメソッドを呼び出すことをお勧めします。
このリリースのメソッド AccessibleJComboBox.getAccessibleSelection(int) は、常に null を返すという不正な動作をします。この問題はバグ 4401715 で追跡されています。この問題は、J2SE 1.4.0 の最終リリースで修正される予定です。
Java IDL および Java RMI-IIOP の制限 - ava IDL および Java RMI-IIOP の使用時の制限に関する情報については、Java IDL/Java RMI over IIOP の制限をお読みください。
この節の説明は、J2SDK 1.4.0 の仮想マシンに適用されます。
- Microsoft Windows プラットフォームでは、J2SDK には Java HotSpot Server VM と Java HotSpot Client VM の両方が含まれます (Java HotSpot Server VM と Java HotSpot Client VM の詳細情報については、Java 仮想マシンを参照してください)。しかし、Microsoft Windows プラットフォーム用の J2RE には、Java HotSpot Client VM のみが含まれます。J2RE で Java HotSpot Server VM を使用するには、SDK の jre\bin\server フォルダを J2RE の bin\server ディレクトリにコピーします。ソフトウェアベンダーの皆様は、J2RE の再配布とともに Java HotSpot Server VM も再配布することになります。
- Solaris オペレーティング環境の T1 ライブラリのバグにより、libthread "T1" thr_suspend に対する呼び出しが実行されると、呼び出しスレッドがハングアップします。このバグは、J2SDK で Java HotSpot VM 上で実行されるアプリケーションに影響を及ぼす可能性があります。ATG Dynamo アプリケーションサーバに対する影響、および JavaTM Servlet テクノロジや JavaServer PagesTM テクノロジの Tomcat 実装に対する影響が知られています。この問題は、バグ 4511519 で追跡されています。
回避策として、-XX:-UseLWPSynchronization コマンド行フラグを使用してアプリケーションを起動する方法が考えられます。ただし、この回避策は広範囲にテストされていません。Solaris 8 では、回避策として、新しい T2 libthread を使用してください。それには LD_LIBRARY_PATH=/usr/lib/lwp を設定します。Solaris 9 では、新しい libthread がデフォルトの設定なので、この回避策は必要ありません。
- J2SDK 1.4.0 から、Classic Virtual Machine が J2SDK の一部として提供されなくなりました (Solaris プラットフォームでは、J2SDK 1.3.0 から Classic VM が削除されています)。これまで -classic コマンド行オプションを使用して、Classic VM でアプリケーションを実行していた場合、Java HotSpot Client VM (デフォルトまたは -client オプションを使用して呼び出す) または Java HotSpot Server VM (-server オプションを使用して呼び出す) のいずれかを使用する必要があります。-classic オプションを指定してアプリケーションを起動しようとすると、「Error: Classic VM no longer supported.」 というメッセージが表示されます。
- J2SE 1.4.0 プラットフォームでは、45.3 ~ 48.0 の範囲のクラスファイルのバージョンが受け付けられます。
このリリースで確認されている NIO に関するバグは、次のとおりです。
Java Platform Debugger Architecture テクノロジの HotSwap 機能には、以下に示すような問題があります。
- redefineClass の操作が行われた後、行番号が更新されません。つまり、ReferenceType.allLineLocations() が、再定義されたクラスについて正しい行番号を返さないため、「invalid code index (コードインデックスが無効)」などの問題が発生することがあります。この問題は、バグ 4531511 として追跡されています。
- ほとんどの場合、再定義されたクラス内のメソッドが例外をスローすると VM がクラッシュします。この問題にはさらに、Microsoft Windows プラットフォームで Java HotSpot Client VM を使用する場合、再定義されたあるメソッドが同じく再定義された別のメソッドに戻るときに仮想マシンをクラッシュさせるという側面もあります。問題のこの部分は、再定義対象のクラスのメソッドを 2 つ以上スタックに保持させないようにすることで回避できます。バグ 4559100 を参照してください。
J2SE 1.4.0 に含まれている Java Web Start 1.0.1_02 に関連する注を以下に示します。
- Java Web Start セキュリティ警告ダイアログボックスは、Java Web Start およびアプリケーションがハングアップする可能性があります。この問題は、イベントディスパッチ通知の実装におけるバグに原因があります。この問題は、バグレポート 4486581 で追跡されています (現在、Bug Parade の Web サイトにはありません)。
- Java Web Start 1.0.1_02 を使用して署名なしのアプリケーションを開くと、アプリケーションのウィンドウ内のインセットに、「Java Web Start ウィンドウ」というメッセージが表示されます。Microsoft Windows プラットフォームでは、このメッセージはアプリケーションウィンドウの下部に表示されます。Solaris オペレーティング環境と Linux では、アプリケーションウィンドウの上部付近のタイトルバーの直下に表示されます。
- Java Web Start 1.0.1_02 では、Java Network Launching Protocol (JNLP) では、<property name="NAME" value="VALUE"/> の形式の設定は使用できません ("NAME" が "jnlp." または "javaws." で始まる場合を除く)。
Java Media Framework (JMF) の 2.1 以前のバージョンでは、バグ 4387291 により、J2SDK 1.4.0 を使用することでサウンドの出力に支障を来します。この問題を回避するには、JMF 2.1.1 以降のバージョンを使用してください。JMF 2.1.1 以降のバージョンではこのバグが修正されています。
以下は、Netscape ブラウザにおける Java Plug-in テクノロジに関する注です。Netscape 6.1 および 6.2 ブラウザの regxpcom 機能には、Java Plug-in 製品の登録に影響を与えるバグが存在します (Bugzilla のバグ 112201 を参照してください)。 regxpcom は、リブートするまで終了できないか (バージョン 6.1 ブラウザの場合)、クラッシュします (バージョン 6.2 ブラウザの場合)。このバグによる影響として、Netscape 6.1 ブラウザのユーザが Netscape 6 を使用するよう Java Plug-in コントロールパネルを設定しようとしても、Netscape 6 は登録できません。このため、ユーザはコントロールパネルで繰り返し Netscape 6 を選択することになりますが、regxpcom プロセスがそのたびに起動され、それらはバックグラウンドでずっと実行状態のままになり、最終的には CPU を使い果たしてしまいます。この問題は、バージョン 6.2.1 の Netscape ブラウザでは解決されています。
- J2SE 1.4 プラットフォームをアンインストールする際に、同じマシンにバージョン 1.3.1 もインストールされていると、アンインストール中に発生するバグがあります。バージョン 1.3.1 をインストールしてから 1.4 をインストールし、その後 1.4 をアンインストールすると、アンインストーラによって netscape6/plugins ディレクトリから Java Plug-in のすべての dll ファイルが削除されてしまいます。このため、Netscape 6 ブラウザが 1.3.1 の Java Plug-in を使用してアプレットを実行することができなくなります。
回避策 : 1.4 のアンインストール後に 1.3.1 の Java Plug-in を利用可能にするには、NPJava*.dll ファイルを 1.3.1 の <jre directory>/bin ディレクトリから <Netscape6 install directory>/plugins/ ディレクトリに手動でコピーします。
Solaris オペレーティング環境で OpenWindows を使用して J2SE 1.4.0 を実行する場合、Java 2 プラットフォーム仕様との動作の適合性は保証されません。特に、Component.requestFocus() メソッドなど、フォーカスの処理に関連する API は OpenWindows では正常に機能しません。この問題は OpenWindows のバグによるものです。詳細は、バグレポート 4505899 を参照してください。このバグは、CDE ウィンドウマネージャでは発生しません。
Microsoft Windows オペレーティングシステムのインストールで、夏時間を使用しないタイムゾーン (例 : 東京、大阪、札幌) を選択した場合、[自動的に夏時間の調整をする] のグローバルシステム設定がオフになります。このように設定された場合、Java ランタイムは、タイムゾーン ID (例 : Asia/Tokyo) としてではなく、GMT オフセット形式 (例 : GMT+09:00) でプラットフォームのタイムゾーンを検出します。このインストール上の問題を解決するには、意図的に設定をオフにする場合を除いて、インストールの終了後に以下の手順で設定を変更します。
- コントロールパネルにある [日付と時間] を開きます。
- [タイムゾーン] タブにある夏時間を使用するタイムゾーン (例 : (GMT-08:00) 太平洋標準時 (米国およびカナダ);ティファナ) を選択し、次に [自動的に夏時間の調整をする] チェックボックスの選択をオンにしてから [適用] ボタンを押します。
- 使用するタイムゾーンを選択し直し、[OK] ボタンを押します。
メソッド java.applet.getDocumentBase() は、アプレットが含まれるドキュメントが格納されたディレクトリのコンプリート URL を返すことが想定されています。一方、メソッド java.applet.getCodeBase() は、アプレット自体の URL を返すことが想定されています。J2SDK では、この 2 つのメソッドの動作が逆転しています。この問題は、バグ 4456393 として追跡されています。
Solaris オペレーティング環境版の J2SE 1.4 プラットフォームをインストールする前に、必要なパッチがすべてシステムにインストールされていることを確認してください。パッチを入手するには、 SunSolve サポートの Web サイトを参照してください。使用している Solaris オペレーティング環境用のパッチクラスタを入手できます。各パッチクラスタは、指定したプラットフォームの Java 2 Standard Edition (J2SE) のサポートされているすべてのバージョンに適用できます。
パッケージ SUNWj3rt および SUNWj3dev のアンインストールスクリプトのバグにより、ディスク容量再割り当て (DSR) アップグレードの際に、これらのパッケージは削除されません。DSR アップグレードを行うには、最初に pkgrm を使用してこれらのパッケージを手動で削除する必要があります。詳細は、バグレポート 4635483 を参照してください。
以下は、Linux プラットフォーム上でこのリリースを使用する際の注意点です。
- 以下に示す問題は、マルチプロセッサシステム上で断続的に発生します。これらの問題の回避策はなく、解決するには Linux システムをアップグレードする必要があります。
- バージョン 2.2.4 以前の glibc 2.2 のバグは、残った実行スレッドが 1 つだけになると仮想マシンを終了させる可能性があります。この問題は、バージョン 2.2 から 2.2.4 の glibc を含む Red Hat 7.0、7.1、および 7.2などの Linux プラットフォームに影響を及ぼします。この問題は、glibc 2.2.5 では修正されています。バグレポート4656697を参照してください。
- Linux 2.4 SMP カーネルは重複 PID を発生することがあり、ネットワークエラーからクラッシュまで引き起こす可能性があります。この問題は、カーネル 2.4.18 では修正されています。バグレポート4650839を参照してください。
- CONFIG_IP_TRANSPARENT_PROXY オプションを使用してカーネルをコンパイルした任意の Linux バージョンでスーパーユーザとして実行する場合、API 仕様に準拠する動作は保障されません。RedHat 6.2 ディストリビューションに同梱されているデフォルトのカーネルは、このオプションを使用してコンパイルされています。これに関連する非互換性の問題を回避するには、スーパーユーザで Java プラットフォームを使用しない、またはカーネルを CONFIG_IP_TRANSPARENT_PROXY オプションを使用せずにコンパイルした Linux オペレーティングシステムにアップグレードしてください。バージョン 2.4 のカーネルとともに提供されている Red Hat 7.1 では、この問題は発生しません。
- 日本語 Red Hat 7.x はデフォルトでは JIS X 0201 の TrueType フォントを持っていないので、日本語フォントプロパティファイル font.properties.jaには JIS X 0201 が定義されていません。この問題を回避するには、TrueType JIS X 0201 フォントをインストールし、適宜 font.properties.ja ファイルを変更します。
Active X ブリッジは J2SE 1.4.0 で削除されました。
Forte for Java 3.0 および NetBeans 3.2.1 は、J2SDK 1.4.0 と併せて動作可能です。ただし、Forte for Java 2.0 および NetBeans 3.2 は、J2SDK 1.4.0 と併せて動作しません。
次の説明は、このリリースのツールおよびユーティリティに当てはまります。
- 1.4 リリースでは、旧版のシェルスクリプトを置き換える新しいプログラム起動機構が導入されました。既存の Java アプリケーションを実行するときには、この変更が分かりやすくある必要があります。しかし、Linux 上で gdb デバッグツールを使用してデバッグを行う場合は、起動プログラムで LD_LIBRARY_PATH 環境変数を、以下に示す特定の値に設定する必要があります。このリストの最後に、独自の LD_LIBRARY_PATH パスを追加できます。
/usr/java/j2sdk1.4.0 パスは Linux 版 J2SDK 1.4 のデフォルトのインストールディレクトリです。これについては、バグレポート 4526137 に記述されています。LD_LIBRARY_PATH=/usr/java/j2sdk1.4.0/jre/lib/i386/client:\ /usr/java/j2sdk1.4.0/jre/lib/i386:/usr/java/j2sdk1.4.0/jre/../lib/i386
- 次に示す旧式のツールおよびユーティリティは、J2SE 1.4 から削除されました。
- oldjava および oldjavaw
- oldjavac
- javald
- 4083890: 以下の例の 2 つ目のセミコロンのような、到達不可能な空白文を javac コンパイラが正しく検出するようになりました。
void someMethod(){ return;; }- Javadoc ツール - 「Javadoc 1.4 の新機能」に、新たに追加された機能とバグ修正に関する説明があります。以下は、まだ未解決の 1.4.0 の主なバグと、バージョンがあがったことにより発生する既知の不具合 (1.3.1 では機能しますが、1.4.0 では正常に機能しない機能) のすべてです。すべてのバグについては、「What Bugs are in Javadoc?」を参照してください。
- {@inheritDoc} タグが壊れます - doc コメントを継承しません。 回避策はありません。 バグ 4618686 を参照してください。
- インタフェース定数が定数フィールド値リストに含まれません。 バグ 4526070 を参照してください。
- 先頭のアスタリスク (*) が抜けているコメントは、HTML 出力では 1 文字余分に字下げされます。 バグ 4587562 を参照してください。
- {@docRoot} タグが壊れます。不正なスラッシュ (/) が末尾に付いた値に解釈されます。以前のリリースでは、最後にスラッシュは付いていませんでした。この余分なスラッシュが原因で、すでに {@docRoot} の次に続くスラッシュがある場合、URL の書式が不正になります。回避策としては、doc コメントから、{@docRoot} の直後のスラッシュを削除します。誤って付加される余分なスラッシュは、将来のリリースで削除される予定です。 {@docRoot} からの全リンクに余分のスラッシュが付く一方、Netscape と Internet Explorer はいずれも、この余分のスラッシュに続いて以下のようなディレクトリ名またはファイル名が指定されている場合は書式を許可します (正しいページに飛びます)。
<a href="../../..//serialized-form.html#javax.rmi.CORBA.Stub">しかし、次のような指定は正しく処理しません。<a href="../..//../guide/misc/threadPrimitiveDeprecation.html">前者は doc ルート (つまり、api ドキュメントのルート) 下のページへのリンクの場合であり、後者は api ドキュメント階層の外にあるページへのリンクです。このため、壊れたリンクは、api ドキュメント階層外へのリンクに関してのみ発見されることになります。対策としては、ファイルを後処理して、余分なスラッシュを削除します。バグ 4524350 を参照してください。
- クラスの「使用」ページから、クラスを返すメソッドまたは引数としてクラス型を受け付けるメソッドが欠落します (「使用」ページの有用性が損なわれます)。 バグ 4496290 を参照してください。
- クラスコメントの最初の文にあるハードコードされたアンカータグ <A HREF="xx">YY</A> は、package-summary.html ページでは切り捨てられることがあります。この切り捨ては後ろに置かれる引用符 (") の前で行われるため、それ以降のテキストがのみ込まれて消えてしまいます。ファイルを後処理で訂正する以外に回避策はありません。バグ 4523891 を参照してください。
- パッケージ名を Javadoc に引き渡すとき、クラスパス上で検出した .class ファイル (指定のパッケージに属する) を間違ってドキュメント化してしまいます。このような現象は、以前のリリースでは発生しませんでした。ソースファイルの doc コメントが存在しないため、これらのクラスはコメントなしでドキュメント化されます。回避策: クラスパスを変更して、.class ファイルへのパスを省略するか、パッケージ名の代わりにソースファイル名を使用します。バグ 4548768 を参照してください。
- -link または -linkoffline による外部メソッドへのリンクは生成されません。回避策はありません。バグ 4615751 参照してください。
- Javadoc は com.ibm.java など *.java のような形式のパッケージ名をドキュメント化できません。回避策としては、パッケージ名ではなくクラス名を使用します。バグ 4507380 を参照してください。
- メソッド内で、Javadoc はある特定の例外用の @throws タグを処理した後、次に遭遇する同じ例外用の @throws タグを無視してしまいます。バグ 4525364 を参照してください。
- 「直列化された形式」へのリンクは誤って、クラスへのアンカーを含まなくなりました。バグ 4521661 を参照してください。
- libsafe ライブラリの 1.x バージョンにおける制限は、Avaya Labs Research から使用できますが、J2SDK ツールではメッセージ「Invalid initial heap size: -Xms8m」が表示されて失敗します。 この制限は libsafe ライブラリの最新リリース (バージョン 2.0) で修正されています。このリリースは http://www.research.avayalabs.com/project/libsafe/ からダウンロードできます。
rt.jar ファイルには、java/ や java/io/ などのディレクトリエントリが含まれなくなりました。java/io/InputStream.class のような実際のクラスファイルのエントリのみ含まれます。同様に、charsets.jar ファイルには、ディレクトリエントリは含まれません。
java.lang.Throwable および J2SDK 1.4 で直列化されたサブクラス (全例外を含む) のインスタンスは、Internet Explorer ブラウザで使用する Microsoft Windows の JDK 1.1 の実装からは直列化解除できません。これらのオブジェクトを直列化解除すると、ClassNotFoundException がスローされます。この問題はバグレポート 4634165 で記述されています。
[an error occurred while processing this directive]