JavaTM 2 Platform
Std. Ed. v1.3

java.lang
クラス ClassLoader

java.lang.Object
  |
  +--java.lang.ClassLoader
直系の既知のサブクラス:
SecureClassLoader

public abstract class ClassLoader
extends Object

ClassLoader クラスは抽象クラスです。クラスローダは、クラスのロードを担当するオブジェクトです。クラス名を指定すると、クラスの定義を構成するデータを見つけるか生成します。一般的な方法としては、名前をファイル名に変換して、ファイルシステムからその名前のクラスファイルを読み取ります。

Class オブジェクトは、その Class オブジェクトを定義した ClassLoader への参照を格納しています。

配列クラスの Class オブジェクトは、クラスローダによっては作成されず、Java Runtime の要求に応じて自動的に作成されます。配列クラスのクラスローダは、Class.getClassLoader() によって返され、その要素の型のクラスローダと同じになります。要素の型がプリミティブ型の場合には、配列クラスにクラスローダはありません。

アプリケーションは、Java Virtual Machine が動的にクラスをロードするように拡張するため、ClassLoader のサブクラスを実装します。

クラスローダは一般的に、セキュリティマネージャがセキュリティドメインを示すために使われます。

ClassLoader クラスは、委譲モデルを使ってクラスとリソースを探します。ClassLoader の各インスタンスは、関連する親クラスローダを持ちます。クラスまたはリソースを見つけるために呼び出されると、ClassLoader インスタンスはそれ自体でクラスまたはリソースの検索を試みる前に、その検索を親クラスに委譲します。ブートストラップクラスローダと呼ばれる Virtual Machine の組み込みクラスローダはそれ自体では親を持たず、ClassLoader インスタンスの親として動作します。

通常、Java Virtual Machine は、プラットフォームに依存しない方法でローカルファイルシステムからクラスをロードします。たとえば、UNIX システムでは、CLASSPATH 環境変数によって定義されたディレクトリからクラスをロードします。

ただし、ファイルから作成できないクラスもあります。このようなクラスは、ネットワークなどの他のソースから作成したり、アプリケーションが構築したりします。メソッド defineClass は、バイトの配列をクラス Class のインスタンスに変換します。新しく定義したクラスのインスタンスは、クラス ClassnewInstance を使って生成できます。

クラスローダで作成したオブジェクトのメソッドとコンストラクタは、他のクラスを参照できます。参照するクラスを判定するために、Java Virtual Machine は、クラスを最初に作成したクラスローダの loadClass メソッドを呼び出します。

たとえば、アプリケーションはネットワーククラスローダを作成して、サーバからクラスファイルをダウンロードできます。コードは次のようになります。

   ClassLoader loader = new NetworkClassLoader(host, port);
   Object main = loader.loadClass("Main", true).newInstance();
          . . .

ネットワーククラスローダのサブクラスは、ネットワークからクラスをロードするために findClass メソッドと loadClassData メソッドを定義しなければなりません。クラスを作成するバイトを一度ダウンロードしたら、メソッド defineClass を使ってインスタンスを生成する必要があります。実装の例を以下に示します。


     class NetworkClassLoader extends ClassLoader {
         String host;
         int port;

         public Class findClass(String name) {
             byte[] b = loadClassData(name);
             return defineClass(name, b, 0, b.length);
         }

         private byte[] loadClassData(String name) {
             // load the class data from the connection
              . . .
         }
     }

導入されたバージョン:
JDK1.0
関連項目:
Class, Class.newInstance(), defineClass(byte[], int, int), loadClass(java.lang.String, boolean), resolveClass(java.lang.Class)

コンストラクタの概要
protected ClassLoader()
          getSystemClassLoader() メソッドによって返された ClassLoader を親クラスローダとして使用し、新しいクラスローダを作成します。
protected ClassLoader(ClassLoader parent)
          指定された親クラスローダを使って、委譲のために新しいクラスローダを作成します。
 
メソッドの概要
protected  Class defineClass(byte[] b, int off, int len)
          推奨されていません。 defineClass(java.lang.String, byte[], int, int) に置き換えられました。
protected  Class defineClass(String name, byte[] b, int off, int len)
          byte の配列を Class クラスのインスタンスに変換します。
protected  Class defineClass(String name, byte[] b, int off, int len, ProtectionDomain protectionDomain)
          オプションの ProtectionDomain を使って、バイトの配列を Class クラスのインスタンスに変換します。
protected  Package definePackage(String name, String specTitle, String specVersion, String specVendor, String implTitle, String implVersion, String implVendor, URL sealBase)
          この ClassLoader で名前を使ってパッケージを定義します。
protected  Class findClass(String name)
          指定されたクラスを探します。
protected  String findLibrary(String libname)
          ネイティブライブラリの絶対パス名を返します。
protected  Class findLoadedClass(String name)
          指定された名前を持つクラスがこのクラスローダによってすでにロードされている場合、そのクラスを探します。
protected  URL findResource(String name)
          指定された名前を持つリソースを探します。
protected  Enumeration findResources(String name)
          指定された名前を持つすべてのリソースを表す URL の Enumeration を返します。
protected  Class findSystemClass(String name)
          指定された名前を持つクラスを探して、必要に応じてロードします。
protected  Package getPackage(String name)
          このクラスローダかその上位オブジェクトのどれかによって定義された Package を返します。
protected  Package[] getPackages()
          このクラスローダとその上位オブジェクトによって定義されたすべての Package を返します。
 ClassLoader getParent()
          委譲のための親クラスローダを返します。
 URL getResource(String name)
          指定された名前を持つリソースを見つけます。
 InputStream getResourceAsStream(String name)
          指定されたリソースを読み込む入力ストリームを返します。
 Enumeration getResources(String name)
          指定された名前を持つすべてのリソースを探します。
static ClassLoader getSystemClassLoader()
          委譲のためのシステムクラスローダを返します。
static URL getSystemResource(String name)
          クラスをロードするために使用される検索パスから、指定された名前のリソースを探します。
static InputStream getSystemResourceAsStream(String name)
          クラスをロードするのに使用される検索パスから、指定された名前のリソースを、読み込み用にオープンします。
static Enumeration getSystemResources(String name)
          クラスをロードするために使用される検索パスから、指定された名前のすべてのリソースを探します。
 Class loadClass(String name)
          指定された名前を持つクラスをロードします。
protected  Class loadClass(String name, boolean resolve)
          指定された名前を持つクラスをロードします。
protected  void resolveClass(Class c)
          指定されたクラスをリンクします。
protected  void setSigners(Class c, Object[] signers)
          クラスの署名者を設定します。
 
クラス java.lang.Object から継承したメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

コンストラクタの詳細

ClassLoader

protected ClassLoader(ClassLoader parent)
指定された親クラスローダを使って、委譲のために新しいクラスローダを作成します。

セキュリティマネージャが存在する場合は、セキュリティマネージャの checkCreateClassLoader メソッドが呼び出されます。これによりセキュリティ例外が発生する場合があります。

パラメータ:
parent - 親のクラスローダ
例外:
SecurityException - セキュリティマネージャが存在し、その checkCreateClassLoader メソッドが新しいクラスローダの作成を許可しない場合
導入されたバージョン:
1.2
関連項目:
SecurityException, SecurityManager.checkCreateClassLoader()

ClassLoader

protected ClassLoader()
getSystemClassLoader() メソッドによって返された ClassLoader を親クラスローダとして使用し、新しいクラスローダを作成します。

このコンストラクタは、新しく作成されるクラスローダのそれぞれに対して呼び出されます。ClassLoader クラスは抽象クラスなので、ClassLoader クラス自体の新しいインスタンスを生成することはできません。ただし、ClassLoader のサブクラスの各コンストラクタは、明示的または暗黙的、直接的または間接的にかかわらず、必然的にこのコンストラクタを呼び出します。

セキュリティマネージャが存在する場合は、セキュリティマネージャの checkCreateClassLoader メソッドが呼び出されます。これによりセキュリティ例外が発生する場合があります。

例外:
SecurityException - セキュリティマネージャが存在し、その checkCreateClassLoader メソッドが新しいクラスローダの作成を許可しない場合
関連項目:
SecurityException, SecurityManager.checkCreateClassLoader()
メソッドの詳細

loadClass

public Class loadClass(String name)
                throws ClassNotFoundException
指定された名前を持つクラスをロードします。このメソッドは、loadClass(String, boolean) メソッドと同じ方法でクラスを検索します。Java Virtual Machine がこのメソッドを呼び出して、クラス参照を解決します。このメソッドを呼び出すことは、loadClass(name, false) を呼び出すことに相当します。
パラメータ:
name - クラスの名前
戻り値:
結果の Class オブジェクト
例外:
ClassNotFoundException - クラスが見つからなかった場合

loadClass

protected Class loadClass(String name,
                          boolean resolve)
                   throws ClassNotFoundException
指定された名前を持つクラスをロードします。このメソッドのデフォルト実装では、次の順序でクラスを検索します。

  1. findLoadedClass(String) を呼び出して、クラスがすでにロードされたかどうかを確認する

  2. 親クラスローダで loadClass メソッドを呼び出す。親が null の場合、Virtual Machine に組み込まれたクラスローダが代わりに呼び出す

  3. findClass(String) メソッドを呼び出して、クラスを探す

上記の手順でクラスが見つかった場合、resolve フラグが true のときには、このメソッドは見つかったクラスオブジェクトに対して resolveClass(Class) メソッドを呼び出します。

Java 2 SDK v1.2 以降は、ClassLoader のサブクラスが、このメソッドではなく findClass(String) をオーバーライドすることが推奨されています。

パラメータ:
name - クラスの名前
resolve - true の場合は、クラスを解釈処理する
戻り値:
結果の Class オブジェクト
例外:
ClassNotFoundException - クラスが見つからない場合

findClass

protected Class findClass(String name)
                   throws ClassNotFoundException
指定されたクラスを探します。このメソッドは、クラスをロードするための新しい委譲モデルに準拠するクラスローダ実装によってオーバーライドされ、必要なクラスの親クラスローダのチェック後に loadClass メソッドによって呼び出されます。デフォルトの実装は ClassNotFoundException をスローします。
パラメータ:
name - クラスの名前
戻り値:
結果の Class オブジェクト
例外:
ClassNotFoundException - クラスが見つからない場合
導入されたバージョン:
1.2

defineClass

protected final Class defineClass(byte[] b,
                                  int off,
                                  int len)
                           throws ClassFormatError
推奨されていません。 defineClass(java.lang.String, byte[], int, int) に置き換えられました。

byte の配列を Class クラスのインスタンスに変換します。最初にクラスを解決してからでなければ、クラスを使うことはできません。このメソッドよりも、クラス名を最初の引数として取得するバージョンの方が安全であるため、そのバージョンを使用することをお勧めします。
パラメータ:
b - クラスデータを構成する byte。off から off+len-1 までの位置にある byte は、Java Virtual Machine 仕様で定義される有効なクラスファイルの形式を持つ
off - クラスデータの開始オフセット
len - クラスデータの長さ
戻り値:
指定されたクラスデータから作成された Class オブジェクト
例外:
ClassFormatError - データが有効なクラスを含まなかった場合
関連項目:
loadClass(java.lang.String, boolean), resolveClass(java.lang.Class)

defineClass

protected final Class defineClass(String name,
                                  byte[] b,
                                  int off,
                                  int len)
                           throws ClassFormatError
byte の配列を Class クラスのインスタンスに変換します。最初にクラスを解決してからでなければ、クラスを使うことはできません。

このメソッドは、デフォルトの ProtectionDomain を、新しく定義されたクラスに割り当てます。ProtectionDomain は、Policy.getPolicy().getPermissions() への呼び出しが null,null の Codesource を使って行われたときに許可されるアクセス権を保持します。デフォルトのドメインは defineClass の最初の呼び出しで作成され、そのあとの呼び出しで再使用されます。

特定の ProtectionDomain をクラスに割り当てるには、ProtectionDomain をその引数の 1 つとしてとる defineClass メソッドを使います。

パラメータ:
name - クラスの名前として期待するもの。不明な場合は null。区切り文字には「/」ではなく「.」を使う。クラス名のあとの接尾辞「.class」は付けない
b - クラスデータを構成する byte。off から off+len-1 までの位置にある byte は、Java Virtual Machine 仕様で定義される有効なクラスファイルの形式を持つ
off - クラスデータの開始オフセット
len - クラスデータの長さ
戻り値:
指定されたクラスデータから作成された Class オブジェクト
例外:
ClassFormatError - データが有効なクラスを含まなかった場合
IndexOutOfBoundsException - off または len のどちらかが負の場合、または off+lenb.length よりも大きい場合
SecurityException - 証明書の個別セット、次に符号なしのこのクラスを使って署名されたクラスを含むパッケージに、このクラスを追加しようとする場合
導入されたバージョン:
JDK1.1
関連項目:
loadClass(java.lang.String, boolean), resolveClass(java.lang.Class), ProtectionDomain, Policy, CodeSource, SecureClassLoader

defineClass

protected final Class defineClass(String name,
                                  byte[] b,
                                  int off,
                                  int len,
                                  ProtectionDomain protectionDomain)
                           throws ClassFormatError
オプションの ProtectionDomain を使って、バイトの配列を Class クラスのインスタンスに変換します。ドメインが null の場合は、デフォルトのドメインが、defineClass(String,byte[],int,int) のドキュメントで指定されているとおりクラスに割り当てられています。最初にクラスを解決してからでなければ、クラスを使うことはできません。

パッケージで定義される最初のクラスは、そのパッケージ内で連続して定義されたすべてのクラスにある、証明書の正確なセットを判定します。クラスの証明書のセットは、クラスの ProtectionDomain 内の CodeSource から取得します。そのパッケージに追加されたクラスには同一の証明書のセットが含まれている必要があり、含まれていない場合は SecurityException がスローされます。name 引数が null の場合、この判別は実行されません。必ず、定義するクラスの名前をバイトとともに渡す必要があります。このようにして渡すと、定義するクラスは実際に考えたとおりのクラスになります。

java.* パッケージのすべてのクラスはブートストラップクラスローダでしか定義できないので、"java." で始まるクラス名を指定することはできません。

パラメータ:
name - クラスの名前
b - クラスバイト
off - クラスバイトの開始オフセット
len - クラスバイト長
protectionDomain - このクラスの ProtectionDomain
戻り値:
データから作成された Class オブジェクトと、任意の ProtectionDomain
例外:
ClassFormatError - データが有効なクラスを含まなかった場合
IndexOutOfBoundsException - off または len のどちらかが負の場合、または off+lenb.length よりも大きい場合
SecurityException - このクラスよりも異なった証明書のセットによって署名されたクラスを含むパッケージにこのクラスを追加しようとした場合、またはクラス名が "Java." で始まる場合

resolveClass

protected final void resolveClass(Class c)
指定されたクラスをリンクします。クラスローダはこのメソッドを使って、クラスをリンクします。クラス c がすでにリンクされている場合、このメソッドは単に復帰します。そうでない場合、Java 言語仕様の「Execution」の章で説明しているように、クラスはリンクされます。
パラメータ:
c - リンクするクラス
例外:
NullPointerException - cnull の場合
関連項目:
defineClass(java.lang.String,byte[],int,int)

findSystemClass

protected final Class findSystemClass(String name)
                               throws ClassNotFoundException
指定された名前を持つクラスを探して、必要に応じてロードします。

Java 2 SDK より前では、このメソッドはローカルファイルシステムからクラスをプラットフォームに依存した方法でロードし、関連したクラスローダのないクラスオブジェクトを返します。

Java 2 SDK v1.2 以降、このメソッドはシステムクラスローダ (getSystemClassLoader() を参照) を使ってクラスをロードします。返されるクラスオブジェクトは、そのクラスオブジェクトに関連した ClassLoader を持つことになります。ClassLoader のサブクラスは通常、このメソッドを呼び出す必要はありません。これは、ほとんどのクラスローダが findClass(String) だけをオーバーライドすればよいからです。

パラメータ:
name - 検索されるクラスの名前
戻り値:
指定された name クラスの Class オブジェクト
例外:
ClassNotFoundException - クラスが見つからない場合
関連項目:
ClassLoader(ClassLoader), getParent()

getParent

public final ClassLoader getParent()
委譲のための親クラスローダを返します。実装によっては null を使って、ブートストラップクラスローダを表す場合もあります。このメソッドは、このクラスローダの親がブートストラップクラスローダの場合に、そのような実装で null を返します。

セキュリティマネージャが存在する場合、呼び出し側のクラスローダが null でなく、このクラスローダの上位オブジェクトでもない場合は、このメソッドは RuntimePermission("getClassLoader") アクセス権を使ってセキュリティマネージャの checkPermission メソッドを呼び出すことによって、親クラスローダに問題なくアクセスできることを保証します。そうでない場合は、SecurityException がスローされます。

戻り値:
親の ClassLoader
例外:
SecurityException - セキュリティマネージャが存在し、その checkPermission メソッドがこのクラスローダの親クラスローダへのアクセスを許可しない場合
導入されたバージョン:
1.2
関連項目:
SecurityManager.checkPermission(java.security.Permission), RuntimePermission

setSigners

protected final void setSigners(Class c,
                                Object[] signers)
クラスの署名者を設定します。このメソッドは、クラスの定義後に呼び出す必要があります。
パラメータ:
c - Class オブジェクト
signers - クラスの署名者
導入されたバージョン:
JDK1.1

findLoadedClass

protected final Class findLoadedClass(String name)
指定された名前を持つクラスがこのクラスローダによってすでにロードされている場合、そのクラスを探します。
パラメータ:
name - クラス名
戻り値:
Class オブジェクト。クラスがロードされていない場合は null
導入されたバージョン:
JDK1.1

getResource

public URL getResource(String name)
指定された名前を持つリソースを見つけます。リソースは、コード位置に依存しない方法でクラスコードによってアクセスできる、なんらかのデータ (イメージ、オーディオ、テキストなど) です。

リソースの名前は、「/」で区切られたパス名であり、これによってリソースが識別されます。

このメソッドは、まずリソースの親クラスローダを検索します。親が null の場合、Virtual Machine に組み込まれたクラスローダのパスが検索されます。それに失敗すると、このメソッドはリソースを見つけるために findResource を呼び出します。

パラメータ:
name - リソース名
戻り値:
リソースを読み込むための URL。ただし、リソースが見つからなかった場合や、呼び出し側がリソースを取得する適切な特権を持っていない場合は null
導入されたバージョン:
JDK1.1
関連項目:
findResource(String)

getResources

public final Enumeration getResources(String name)
                               throws IOException
指定された名前を持つすべてのリソースを探します。リソースは、コード位置に依存しない方法でクラスコードによってアクセスできる、なんらかのデータ (イメージ、オーディオ、テキストなど) です。

リソースの名前は、「/」で区切られたパス名であり、これによってリソースが識別されます。

検索順については、getResource(String) のドキュメントを参照してください。

パラメータ:
name - リソース名
戻り値:
リソースに対する URL の列挙。リソースが見つからなかった場合、列挙は空になる。アクセスを持たないリソースは列挙に入らない
例外:
IOException - 入出力エラーが発生した場合
導入されたバージョン:
1.2
関連項目:
getResource(java.lang.String), findResources(java.lang.String)

findResources

protected Enumeration findResources(String name)
                             throws IOException
指定された名前を持つすべてのリソースを表す URL の Enumeration を返します。クラスローダの実装は、リソースのロード元を特定するためにこのメソッドをオーバーライドします。
パラメータ:
name - リソース名
戻り値:
リソースの URL の Enumeration
例外:
IOException - 入出力エラーが発生した場合
導入されたバージョン:
1.2

findResource

protected URL findResource(String name)
指定された名前を持つリソースを探します。クラスローダの実装は、リソースのロード元を特定するためにこのメソッドをオーバーライドします。
パラメータ:
name - リソース名
戻り値:
リソースを読み込むための URL。リソースが見つからなかった場合は null
導入されたバージョン:
1.2

getSystemResource

public static URL getSystemResource(String name)
クラスをロードするために使用される検索パスから、指定された名前のリソースを探します。

JDK 1.1 では、使用される検索パスは Virtual Machine の組み込みクラスローダの検索パスです。

Java 2 SDK v1.2 以降は、このメソッドはシステムクラスローダ (getSystemClassLoader() を参照) を使ってリソースを見つけます。

パラメータ:
name - リソース名
戻り値:
リソースを読み込むための URL。リソースが見つからなかった場合は null
導入されたバージョン:
JDK1.1

getSystemResources

public static Enumeration getSystemResources(String name)
                                      throws IOException
クラスをロードするために使用される検索パスから、指定された名前のすべてのリソースを探します。見つかったリソースは URL オブジェクトの Enumeration として返されます。

検索順については、getSystemResource(String) のドキュメントを参照してください。

パラメータ:
name - リソース名
戻り値:
リソース URL の列挙
例外:
IOException - 入出力エラーが発生した場合
導入されたバージョン:
1.2

getResourceAsStream

public InputStream getResourceAsStream(String name)
指定されたリソースを読み込む入力ストリームを返します。 検索順については、getResource(String) のドキュメントを参照してください。

パラメータ:
name - リソース名
戻り値:
リソースを読み込むための入力ストリーム。リソースが見つからなかった場合は null
導入されたバージョン:
JDK1.1

getSystemResourceAsStream

public static InputStream getSystemResourceAsStream(String name)
クラスをロードするのに使用される検索パスから、指定された名前のリソースを、読み込み用にオープンします。

検索順については、getSystemResource(String) のドキュメントを参照してください。

パラメータ:
name - リソース名
戻り値:
リソースを読み込むための入力ストリーム。リソースが見つからなかった場合は null
導入されたバージョン:
JDK1.1

getSystemClassLoader

public static ClassLoader getSystemClassLoader()
委譲のためのシステムクラスローダを返します。これは、新しい ClassLoader インスタンスのデフォルトの委譲の親で、通常、アプリケーションを起動するためのクラスローダです。

セキュリティマネージャが存在する場合、呼び出し側のクラスローダが null でなく、このシステムクラスローダと同じでなく、このシステムクラスローダの上位オブジェクトでもなければ、このメソッドは RuntimePermission("getClassLoader") アクセス権を使ってセキュリティマネージャの checkPermission メソッドを呼び出すことによって、システムクラスローダに問題なくアクセスできることを保証します。そうでない場合は、SecurityException がスローされます。

戻り値:
委譲のためのシステム ClassLoader。ない場合は null
例外:
SecurityException - セキュリティマネージャが存在し、その checkPermission メソッドがこのシステムクラスローダへのアクセスを許可しない場合
導入されたバージョン:
1.2
関連項目:
SecurityManager.checkPermission(java.security.Permission), RuntimePermission

definePackage

protected Package definePackage(String name,
                                String specTitle,
                                String specVersion,
                                String specVendor,
                                String implTitle,
                                String implVersion,
                                String implVendor,
                                URL sealBase)
                         throws IllegalArgumentException
この ClassLoader で名前を使ってパッケージを定義します。これにより、クラスローダはそのクラスのパッケージを定義します。クラスを定義する前に、パッケージを作成する必要があります。パッケージ名については、クラスローダ内で一意とし、作成後の再定義や変更はできません。
パラメータ:
name - パッケージ名
specTitle - 仕様のタイトル
specVersion - 仕様のバージョン
specVendor - 仕様のベンダー
implTitle - 実装のタイトル
implVersion - 実装のバージョン
implVendor - 実装のベンダー
sealBase - null でない場合、このパッケージは指定されたコードソース URL を考慮してシールされる。そうでない場合、パッケージはシールされない
戻り値:
新しく定義された Package オブジェクト
例外:
IllegalArgumentException - パッケージ名が、このクラスローダかまたはその上位オブジェクトのうちの 1 つに存在するパッケージと重複する場合
導入されたバージョン:
1.2

getPackage

protected Package getPackage(String name)
このクラスローダかその上位オブジェクトのどれかによって定義された Package を返します。
パラメータ:
name - パッケージ名
戻り値:
指定された名前に対応する Package。見つからない場合は null
導入されたバージョン:
1.2

getPackages

protected Package[] getPackages()
このクラスローダとその上位オブジェクトによって定義されたすべての Package を返します。
戻り値:
この ClassLoader によって定義された Package オブジェクトの配列
導入されたバージョン:
1.2

findLibrary

protected String findLibrary(String libname)
ネイティブライブラリの絶対パス名を返します。VM はこのメソッドを呼び出して、このクラスローダでロードされたクラスに属するネイティブライブラリを見つけます。このメソッドが null を返す場合、VM は java.library.path プロパティで指定されたパスにしたがってライブラリを検索します。
パラメータ:
libname - ライブラリ名
戻り値:
ネイティブライブラリの絶対パス
導入されたバージョン:
1.2
関連項目:
System.loadLibrary(java.lang.String), System.mapLibraryName(java.lang.String)

JavaTM 2 Platform
Std. Ed. v1.3

バグや機能要求の報告
さらに詳しい API リファレンスおよび開発者ドキュメントについては、 Java 2 SDK SE Developer Documentation を参照してください。このドキュメントには、概念、用語の定義、回避策、 実用的なコード例など、開発者を対象にした詳細な解説が掲載されています。

Java、Java 2D、JDBC は、米国およびその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2000 Sun Microsystems, Inc. 901 San Antonio Road,
Palo Alto, California, 94303, U.S.A. All Rights Reserved.