1. APIの実装のレベル
 2. 文字エンコード
 3. 追加例外
 4. APIの実装
 5. PersonalJAVA独自の実装について

APIの実装のレベル

specificationにおいて、サポートするべきAPIが示されているが、それらAPIはそのサポートのレベルによって段階が分けられている。
Required
完全に実装を要求されるAPIに対しては、このRequiredが指定される。
Unsupported
PersonalJAVAではサポートされないAPIに対して指定される。
Optional
実装の可否が実装を行うVMのベンダーに任せられているAPIに対して指定される
>PJAE-specific
JDK 1.1.8 や JDK 1.2.2には存在しないが、PersonalJAVAにおいてのみ存在するAPIに対して指定される。
Modified
完璧にはJDKのAPIが実装されず、その細部が未実装もしくは動作の詳細が違うAPIに対して指定される。

文字エンコード

文字エンコーディングはプラットフォームに強く依存、もしくは制限されることになる。
ただし、最低限、ISO 8859-1 ("Latin-1")、 Unicode、プラットフォームのネイティブコードは実装環境がサポートする。

追加例外

API自体がJDKのサブセットであるため、開発者が意図せずPersonalJAVAがサポートしていないクラスやメソッドを使うことが想定される。
このため、このようなサポートしていないクラスやメソッドを使用したときに専用の例外をThrowするように新しい例外{\bf com.sun.lang.UnsupportedOperationException}が設けられた。

APIの実装

PersonalJAVAは基本的にJDK1.1.8のAPIの実装を要求するが先に述べた要求のレベルに段階分けされて一部、機能制限されている。
JDK1.1.8のAPIパッケージごとの実装を示す。ただし、specificationの全てを載せるわけではなく詳細については目立つ部分にしか言及しない。

java.Applet

フルサポート

java.awt

modified package

一部動作に修正が加えられている。
Dialog
モーダルなダイアログは同時に一つまでしか表示できない。
Graphics
setXORModeの動作が異なる場合がある。
Scrolling Controls:
ScrollPane、List等スクロールを行うコンポーネントのフィールドScrolling Policyを指定した場合の動作が異なる。
その他

java.awt.event

フルサポート

java.awt.image

フルサポート

java.awt.peer

modified package

FileDialogPeerのみRequiredではない。これは、実装環境によってシステム内でのファイルの取り扱いポリシーが異なるためである。

java.beans

フルサポート

java.io

modified package

次に示すクラスがOptional指定である。

java.lang

modified package

JDK1.2.2 security APIで定義されているfine-grained access controlに関する項目を実装することが要求されている。

java.lang.reflect

modified package

java.lang同様セキュリティー項目においてJDK1.2.2レベルの実装を要求されている。

java.math

Optional指定

ただし、実装をする場合はフルサポートにすることを要求される。

java.net

modified package

セキュリティー項目に関してJDK1.2.2レベルの実装を要求されている。 また、使用できるネットワークプロトコルについては次表の通り。
プロトコルに対する実装要求
プロトコル名VersionRequiredOptional
http1.0 x  
SSL3.0 x
gopher  x
ftp  x
SMTP  x
file  x

java.rmi

Optional指定

サポートする場合はフルサポートであることを要求する。

java.security

modified package

基本的にJDK1.2.2レベルでの実装を要求する。 Fine-grained access controlについてはRequired、code signing mechanismについてはオプショナル指定である。

java.sql

オプショナル指定

実装する場合はフルサポートにすると同時にjava.mathパッケージの実装を要求する。

java.text

フルサポート

ただし、文字エンコーディングについては前述の通り

java.util

modified package

JDK1.1.8のAPIについてはフルサポート。fine-grained access controlやcode signing mechanismに呼応してJDK1.2.2レベルのAPIを一部要求されている。

PersonalJAVA独自の実装について

awtコンポーネントの拡張

awtコンポーネントは全てダブルバッファリングに対応する。 ただし、初期状態でダブルバッファリングが有効になっているか否かは実装に任されておりメソッドpublic boolean isDoubleBuffered()で確認することが出来る。

マウスレス入力支援システム

com.sun.awtにインターフェースのみ定義されている。
戻る