CDC 1.1.2

java.lang
クラス Runtime

java.lang.Object
  上位を拡張 java.lang.Runtime

public class Runtime
extends Object

Java アプリケーションはすべて、Runtime クラスの単一のインスタンスを持ちます。 このクラスは、アプリケーションとアプリケーション実行環境とのインタフェースになります。現在の実行時オブジェクトは、getRuntime メソッドにより取得できます。  

アプリケーションは、自分の Runtime クラスのインスタンスを生成することはできません。

導入されたバージョン:
JDK1.0
関連項目:
getRuntime()

メソッドの概要
 void addShutdownHook(Thread hook)
          新しい仮想マシンのシャットダウンフックを登録します。
 int availableProcessors()
          Java 仮想マシンが使用できるプロセッサの数を返します。
 Process exec(String command)
          指定された文字列コマンドを、独立したプロセスで実行します。
 Process exec(String[] cmdarray)
          指定されたコマンドと引数を、独立したプロセスで実行します。
 Process exec(String[] cmdarray, String[] envp)
          指定されたコマンドと引数を、指定された環境を持つ独立したプロセスで実行します。
 Process exec(String[] cmdarray, String[] envp, File dir)
          指定されたコマンドと引数を、指定された環境と作業ディレクトリを持つ独立したプロセスで実行します。
 Process exec(String cmd, String[] envp)
          指定された文字列コマンドを、指定された環境を持つ独立したプロセスで実行します。
 Process exec(String command, String[] envp, File dir)
          指定された文字列コマンドを、指定された環境と作業ディレクトリを持つ独立したプロセスで実行します。
 void exit(int status)
          現在実行している Java 仮想マシンを、シャットダウンシーケンスを開始して終了します。
 long freeMemory()
          Java 仮想マシン内の空きメモリーの量を返します。
 void gc()
          ガベージコレクタを実行します。
static Runtime getRuntime()
          現在の Java アプリケーションに関連した Runtime オブジェクトを返します。
 void halt(int status)
          現在実行中の Java 仮想マシンを強制終了します。
 void load(String filename)
          指定されたファイル名をダイナミックライブラリとしてロードします。
 void loadLibrary(String libname)
          指定されたライブラリ名を持つダイナミックライブラリをロードします。
 long maxMemory()
          Java 仮想マシンが使用を試みる最大メモリー容量を返します。
 boolean removeShutdownHook(Thread hook)
          すでに登録した仮想マシンのシャットダウンフックを登録解除します。
 void runFinalization()
          ファイナライズを保留しているオブジェクトのファイナライズメソッドを実行します。
 long totalMemory()
          Java 仮想マシンのメモリーの総容量を返します。
 void traceInstructions(boolean on)
          命令のトレースを有効または無効にします。
 void traceMethodCalls(boolean on)
          メソッド呼び出しのトレースを有効または無効にします。
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

メソッドの詳細

getRuntime

public static Runtime getRuntime()
現在の Java アプリケーションに関連した Runtime オブジェクトを返します。Runtime クラスのメソッドのほとんどはインスタンスメソッドであり、現在のランタイムオブジェクトに対応して呼び出されなければいけません。

戻り値:
現在の Java アプリケーションに関連した Runtime オブジェクト

exit

public void exit(int status)
現在実行している Java 仮想マシンを、シャットダウンシーケンスを開始して終了します。このメソッドは通常は復帰しません。引数はステータスコードとして作用します。通例、ゼロ以外のステータスコードは異常終了を示します。

仮想マシンのシャットダウンシーケンスは 2 つの段階で構成されます。第 1 段階では、すべての登録済みのシャットダウンフックは (ある場合)、特に指定していない順序で起動し、終了するまで並行して実行することができます。第 2 段階では、終了時のファイナライズが有効になっている場合に、呼び出されていないすべてのファイナライザが実行されます。これが終了すると仮想マシンは停止します。

仮想マシンがシャットダウンシーケンスを開始したあとにこのメソッドが呼び出されると、シャットダウンフックがこのメソッドを実行している場合は無期限にブロックされます。シャットダウンフックがすでに実行されており終了時のファイナライズが有効になっているときは、ステータスがゼロ以外の場合は仮想マシンを指定したステータスコードで停止し、そうでない場合は無期限にブロックします。

このメソッドを呼び出すには、System.exit メソッドが一般的で便利です。

プロセスモデルが存在する場合、Runtime.exit() はプロセスが終了してリソースが解放されるものと見込む必要があります。  

プロセスモデルが存在せずにセキュリティーマネージャーが存在する場合、セキュリティーマネージャーはデフォルトで SecurityException をスローすることにより、Runtime.exit() の呼び出しを禁止する必要があります。そうでない場合、呼び出し時にシステムが無制限にハングアップします。  

パラメータ:
status - 終了ステータス。通例、ゼロ以外のステータスコードは異常終了を示す
例外:
SecurityException - セキュリティーマネージャーが存在し、セキュリティーマネージャーの checkExit メソッドが指定されたステータスでの終了を許可しない場合
関連項目:
SecurityException, SecurityManager.checkExit(int), addShutdownHook(java.lang.Thread), removeShutdownHook(java.lang.Thread), halt(int)

addShutdownHook

public void addShutdownHook(Thread hook)
新しい仮想マシンのシャットダウンフックを登録します。

2 種類のイベントに応答して Java 仮想マシンをシャットダウンします。

「シャットダウンフック」は初期化されただけで起動していないスレッドです。仮想マシンがシャットダウンシーケンスを開始すると、すべての登録済みシャットダウンフックを、指定されていない順序で起動し並行して実行します。フックがすべて終了すると、終了時のファイナライズが有効である場合はすべての呼び出されていないファイナライザを実行します。最後に、仮想マシンは停止します。exit を呼び出してシャットダウンが開始された場合は、デーモンではないスレッドと同様、デーモンスレッドはシャットダウンシーケンスの間、実行を続けます。

いったんシャットダウンシーケンスが起動すると、強制的に仮想マシンを停止させる halt メソッドを呼び出した場合だけ中止できます。

いったんシャットダウンシーケンスを起動すると、新しいシャットダウンフックを登録したり、以前に登録したフックの登録を解除したりすることはできません。このようなオペレーションのどれかを実行しようとすると、IllegalStateException がスローされます。

シャットダウンフックは仮想マシンのライフサイクルの微妙な時期に起動するため、コーディングする場合は気を付ける必要があります。特に、スレッドセーフに書き込む必要があり、できるかぎりデッドロックを避ける必要があります。シャットダウンフックを登録したサービスをうのみにせず、シャットダウンが進行中に登録する必要があります。

シャットダウンフックは迅速に終了する必要もあります。プログラムが exit を呼び出すと、仮想マシンはただちにシャットダウンして終了するものとみなされます。仮想マシンがユーザーログオフまたはシステムシャットダウンで終了すると、基本となるオペレーティングシステムはシャットダウンまたは終了するまでの一定時間を与えます。したがって、シャットダウンフック中にユーザーとの対話処理をしたり長時間の計算をすることはお勧めできません。

キャッチされていない例外はほかのスレッドと同様に、スレッドの ThreadGroup オブジェクトの uncaughtException メソッドを呼び出してシャットダウンフックで処理されます。このメソッドのデフォルト実装は System.err への例外スタックトレースを出力しスレッドを停止します。仮想マシンの終了または停止はしません。

まれなケースとして、仮想マシンが「異常終了」することがあります。つまり、シャットダウンが正常に行われずに実行が中止される場合です。これは仮想マシンが外部で停止された場合に起こります。たとえば、Unix の場合の SIGKILL シグナルまたは、Microsoft Windows の場合の TerminateProcess の呼び出しがその例です。仮想マシンは、たとえば、内部データ構造の破壊、存在しないメモリーへのアクセスなどのようにネイティブメソッドが失敗した場合にも異常終了します。仮想マシンが異常終了するとシャットダウンフックの実行は保証できません。

パラメータ:
hook - 初期化はされたが起動していない Thread オブジェクト
例外:
IllegalArgumentException - 指定したフックがすでに登録されている場合、あるいはフックが既に実行中であるかまたは実行が完了したと判定される場合
IllegalStateException - 仮想マシンがすでにシャットダウン進行中である場合
SecurityException - セキュリティーマネージャーが存在し、RuntimePermission("shutdownHooks") を拒否した場合
導入されたバージョン:
1.3
関連項目:
removeShutdownHook(java.lang.Thread), halt(int), exit(int)

removeShutdownHook

public boolean removeShutdownHook(Thread hook)
すでに登録した仮想マシンのシャットダウンフックを登録解除します。

パラメータ:
hook - 削除するフック
戻り値:
指定したフックがすでに登録され、問題なく登録解除された場合は true、そうでない場合は false
例外:
IllegalStateException - 仮想マシンがすでにシャットダウン進行中である場合
SecurityException - セキュリティーマネージャーが存在し、RuntimePermission("shutdownHooks") を拒否した場合
導入されたバージョン:
1.3
関連項目:
addShutdownHook(java.lang.Thread), exit(int)

halt

public void halt(int status)
現在実行中の Java 仮想マシンを強制終了します。このメソッドは通常は復帰しません。

このメソッドの使用には細心の注意が必要です。exit メソッドとは異なり、このメソッドではシャットダウンフックを起動できず、終了時のファイナライズが有効な場合は呼び出されていないファイナライザを実行しません。すでにシャットダウンシーケンスが開始されている場合は、このメソッドは実行中のシャットダウンフックまたはファイナライザを待機しないで終了します。

プロセスモデルが存在する場合、Runtime.halt() はプロセスが終了してリソースが解放されるものと見込む必要があります。  

プロセスモデルが存在せずにセキュリティーマネージャーが存在する場合、セキュリティーマネージャーはデフォルトで SecurityException をスローすることにより、Runtime.halt() の呼び出しを禁止する必要があります。そうでない場合、呼び出し時にシステムが無制限にハングアップします。  

パラメータ:
status - 終了ステータス。通例、ゼロ以外のステータスコードは異常終了を示すexit (System.exit と同等) メソッドがすでに呼び出されている場合は、そのメソッドに渡されたステータスコードをオーバーライドする
例外:
SecurityException - セキュリティーマネージャーが存在し、セキュリティーマネージャーの checkExit メソッドが指定されたステータスでの終了を許可しない場合
導入されたバージョン:
1.3
関連項目:
exit(int), addShutdownHook(java.lang.Thread), removeShutdownHook(java.lang.Thread)

exec

public Process exec(String command)
             throws IOException
指定された文字列コマンドを、独立したプロセスで実行します。  

command 引数はトークンに解析され、その後独立したプロセスとして実行されます。トークンの構文解析は、次の呼び出しで作成される StringTokenizer が実行します。

 new StringTokenizer(command)
 
このとき、文字カテゴリがこれ以上変更されることはありません。このメソッドは、exec(command, null) とまったく同じ効果を持ちます。  

プロセスモデルが存在する場合、Runtime.exec() は J2SE 仕様での動作と同じ動作を実行する必要があります。  

プロセスモデルが存在しない場合は、Runtime.exec() およびすべての java.lang.Process メソッドは SecurityException をスローする必要があります。  

パラメータ:
command - 指定されたシステムコマンド
戻り値:
サブプロセスを管理する Process オブジェクト
例外:
SecurityException - セキュリティーマネージャーが存在し、その checkExec メソッドがサブプロセスの作成を許可しない場合
IOException - 入出力エラーが発生した場合
NullPointerException - commandnull の場合
IllegalArgumentException - command が空の場合
関連項目:
exec(java.lang.String, java.lang.String[]), SecurityManager.checkExec(java.lang.String)

exec

public Process exec(String cmd,
                    String[] envp)
             throws IOException
指定された文字列コマンドを、指定された環境を持つ独立したプロセスで実行します。  

このメソッドは command の文字列をトークンに分解してから、トークンを文字列トークナイザで生成された順番に格納する新しい配列 cmdarray を作成します。その次にメソッドは exec(cmdarray, envp) という呼び出しを実行します。トークンの構文解析は、次の呼び出しで作成される StringTokenizer が実行します。

 new StringTokenizer(command)
 
このとき、文字カテゴリがこれ以上変更されることはありません。

環境変数設定は envp で指定します。envpnull の場合、サブプロセスは現在のプロセスの環境設定を継承します。  

プロセスモデルが存在する場合、Runtime.exec() は J2SE 内と同じ動作を実行する必要があります。  

プロセスモデルが存在しない場合は、Runtime.exec() およびすべての java.lang.Process メソッドは SecurityException をスローする必要があります。  

パラメータ:
cmd - 指定されたシステムコマンド
envp - 文字列の配列。配列の各要素は、name=value という形式で環境変数設定を保持する
戻り値:
サブプロセスを管理する Process オブジェクト
例外:
SecurityException - セキュリティーマネージャーが存在し、その checkExec メソッドがサブプロセスの作成を許可しない場合
IOException - 入出力エラーが発生した場合
NullPointerException - cmd が null の場合
IllegalArgumentException - cmd が空の場合
関連項目:
exec(java.lang.String[]), exec(java.lang.String[], java.lang.String[]), SecurityManager.checkExec(java.lang.String)

exec

public Process exec(String command,
                    String[] envp,
                    File dir)
             throws IOException
指定された文字列コマンドを、指定された環境と作業ディレクトリを持つ独立したプロセスで実行します。  

このメソッドは command の文字列をトークンに分解してから、トークンを文字列トークナイザで生成された順番に格納する新しい配列 cmdarray を作成します。その次にメソッドは exec(cmdarray, envp) という呼び出しを実行します。トークンの構文解析は、次の呼び出しで作成される StringTokenizer が実行します。

 new StringTokenizer(command)
 
このとき、文字カテゴリがこれ以上変更されることはありません。

環境変数設定は envp で指定します。envpnull の場合、サブプロセスは現在のプロセスの環境設定を継承します。

新しいサブプロセスの作業ディレクトリは dir で指定します。dirnull の場合は、サブプロセスは現在のプロセスの現在の作業ディレクトリを継承します。

プロセスモデルが存在する場合、Runtime.exec() は J2SE 仕様での動作と同じ動作を実行する必要があります。  

プロセスモデルが存在しない場合は、Runtime.exec() およびすべての java.lang.Process メソッドは SecurityException をスローする必要があります。  

パラメータ:
command - 指定されたシステムコマンド
envp - 文字列の配列。配列の各要素は、name=value という形式で環境変数設定を保持する
dir - サブプロセスが現在のプロセスの作業ディレクトリを継承する場合は、サブプロセスの作業ディレクトリ、または null
戻り値:
サブプロセスを管理する Process オブジェクト
例外:
SecurityException - セキュリティーマネージャーが存在し、その checkExec メソッドがサブプロセスの作成を許可しない場合
IOException - 入出力エラーが発生した場合
NullPointerException - commandnull の場合
IllegalArgumentException - command が空の場合
導入されたバージョン:
1.3
関連項目:
exec(java.lang.String[], java.lang.String[], File), SecurityManager.checkExec(java.lang.String)

exec

public Process exec(String[] cmdarray)
             throws IOException
指定されたコマンドと引数を、独立したプロセスで実行します。  

cmdarray のトークンで指定されたコマンドは、独立したプロセスでコマンドとして実行されます。この機能は、exec(cmdarray, null) とまったく同じです。  

セキュリティーマネージャーが存在する場合、その checkExec メソッドが、配列 cmdarray の 1 番目の要素を引数として呼び出されます。これはセキュリティー例外となる場合があります。

プロセスモデルが存在する場合、Runtime.exec() は J2SE 仕様での動作と同じ動作を実行する必要があります。  

プロセスモデルが存在しない場合は、Runtime.exec() およびすべての java.lang.Process メソッドは SecurityException をスローする必要があります。  

パラメータ:
cmdarray - 実行するコマンドと引数を含む配列
戻り値:
サブプロセスを管理する Process オブジェクト
例外:
SecurityException - セキュリティーマネージャーが存在し、その checkExec メソッドがサブプロセスの作成を許可しない場合
IOException - 入出力エラーが発生した場合
NullPointerException - cmdarraynull の場合
IndexOutOfBoundsException - cmdarray が長さが 0 の空の配列の場合
関連項目:
exec(java.lang.String[], java.lang.String[]), SecurityManager.checkExec(java.lang.String)

exec

public Process exec(String[] cmdarray,
                    String[] envp)
             throws IOException
指定されたコマンドと引数を、指定された環境を持つ独立したプロセスで実行します。  

コマンド行のトークンを表す文字列の配列 cmdarray、および環境変数の設定を表す文字列の配列 envp を指定すると、このメソッドは指定されたコマンドを実行するための新しいプロセスを作成します。

envpnull の場合、サブプロセスは現在のプロセスの環境設定を継承します。

プロセスモデルが存在する場合、Runtime.exec() は J2SE 仕様での動作と同じ動作を実行する必要があります。  

プロセスモデルが存在しない場合は、Runtime.exec() およびすべての java.lang.Process メソッドは SecurityException をスローする必要があります。  

パラメータ:
cmdarray - 実行するコマンドと引数を含む配列
envp - 文字列の配列。配列の各要素は、name=value という形式で環境変数設定を保持する
戻り値:
サブプロセスを管理する Process オブジェクト
例外:
SecurityException - セキュリティーマネージャーが存在し、その checkExec メソッドがサブプロセスの作成を許可しない場合
IOException - 入出力エラーが発生した場合
NullPointerException - cmdarraynull の場合
IndexOutOfBoundsException - cmdarray が長さが 0 の空の配列の場合
関連項目:
Process, SecurityException, SecurityManager.checkExec(java.lang.String)

exec

public Process exec(String[] cmdarray,
                    String[] envp,
                    File dir)
             throws IOException
指定されたコマンドと引数を、指定された環境と作業ディレクトリを持つ独立したプロセスで実行します。  

セキュリティーマネージャーが存在する場合、その checkExec メソッドが、配列 cmdarray の 1 番目の要素を引数として呼び出されます。これはセキュリティー例外となる場合があります。  

コマンド行のトークンを表す文字列の配列 cmdarray、および環境変数の設定を表す文字列の配列 envp を指定すると、このメソッドは指定されたコマンドを実行するための新しいプロセスを作成します。

envpnull の場合、サブプロセスは現在のプロセスの環境設定を継承します。

新しいサブプロセスの作業ディレクトリは dir で指定します。dirnull の場合は、サブプロセスは現在のプロセスの現在の作業ディレクトリを継承します。

プロセスモデルが存在する場合、Runtime.exec() は J2SE 仕様での動作と同じ動作を実行する必要があります。  

プロセスモデルが存在しない場合は、Runtime.exec() およびすべての java.lang.Process メソッドは SecurityException をスローする必要があります。  

パラメータ:
cmdarray - 実行するコマンドと引数を含む配列
envp - 文字列の配列。配列の各要素は、name=value という形式で環境変数設定を保持する
dir - サブプロセスが現在のプロセスの作業ディレクトリを継承する場合は、サブプロセスの作業ディレクトリ、または null
戻り値:
サブプロセスを管理する Process オブジェクト
例外:
SecurityException - セキュリティーマネージャーが存在し、その checkExec メソッドがサブプロセスの作成を許可しない場合
NullPointerException - cmdarraynull の場合
IndexOutOfBoundsException - cmdarray が長さが 0 の空の配列の場合
IOException - 入出力エラーが発生した場合
導入されたバージョン:
1.3
関連項目:
Process, SecurityException, SecurityManager.checkExec(java.lang.String)

availableProcessors

public int availableProcessors()
Java 仮想マシンが使用できるプロセッサの数を返します。

この値は、仮想マシンの特定の呼び出しの間に変化する可能性があります。このため、利用可能なプロセッサ数に影響を受けるアプリケーションは、このプロパティーをときどきポーリングして、リソース使用法を調整する必要があります。

戻り値:
仮想マシンから利用可能な最大プロセッサ数。この値が 1 より小さくなることはない

freeMemory

public long freeMemory()
Java 仮想マシン内の空きメモリーの量を返します。gc メソッドを呼び出すと、freeMemory によって返される値が増える場合があります。

戻り値:
将来割り当てられるオブジェクトに利用可能な現在のメモリーの総容量 (バイト単位)

totalMemory

public long totalMemory()
Java 仮想マシンのメモリーの総容量を返します。ホストの環境によっては、このメソッドによって返される値が時間とともに変化する場合があります。  

任意の指定された型のオブジェクトを格納するのに必要なメモリー容量は、実装によって異なります。

戻り値:
現在および将来のオブジェクトに利用可能な現在のメモリーの総容量 (バイト単位)

maxMemory

public long maxMemory()
Java 仮想マシンが使用を試みる最大メモリー容量を返します。固有の制限が存在しない場合、値 Long.MAX_VALUE が返されます。

戻り値:
仮想マシンが使用を試みる最大メモリー容量 (単位はバイト)

gc

public void gc()
ガベージコレクタを実行します。このメソッドを呼び出すと、Java 仮想マシンは使用していないオブジェクトをリサイクルし、使用中のメモリーをすばやく再利用可能な状態にします。メソッド呼び出しから制御が戻された時点で、仮想マシンは破棄されたオブジェクトをすべて再利用するよう最善を尽くしたことになります。  

gc というメソッド名は「garbage collector」の頭字をとったものです。gc が明示的には呼び出されなかった場合でも、仮想マシンはこの再利用プロセスを必要に応じて自動的に、別のスレッドで実行します。  

このメソッドを呼び出すには、System.gc() メソッドが一般的で便利です。


runFinalization

public void runFinalization()
ファイナライズを保留しているオブジェクトのファイナライズメソッドを実行します。このメソッドを呼び出すと、Java 仮想マシンは、破棄されたにもかかわらず finalize メソッドが実行されていないオブジェクトの finalize メソッドを実行しようとします。メソッド呼び出しから制御が戻された時点で、仮想マシンはすべてのファイナライズを完了するよう最善を尽くしたことになります。  

runFinalization メソッドが明示的には呼び出されなかった場合でも、仮想マシンはこのファイナライズプロセスを必要に応じて自動的に、別のスレッドで実行します。  

このメソッドを呼び出すには、System.runFinalization() メソッドが一般的で便利です。

関連項目:
Object.finalize()

traceInstructions

public void traceInstructions(boolean on)
命令のトレースを有効または無効にします。boolean 引数が true である場合、このメソッドを呼び出すと、Java 仮想マシンは、仮想マシン内の各命令のデバッグ情報を実行時に出力します。この情報の書式や、出力先となるファイルなどの出力ストリームは、ホスト環境によって異なります。この機能をサポートしない場合、仮想マシンは要求を無視する場合があります。トレースの出力先はシステムによって異なります。  

boolean 引数に false を指定すると、仮想マシンは命令の詳細トレースの出力を停止します。

パラメータ:
on - メソッドのトレースを行う場合は true、この機能を無効にする場合は false

traceMethodCalls

public void traceMethodCalls(boolean on)
メソッド呼び出しのトレースを有効または無効にします。boolean 引数が true である場合、このメソッドを呼び出すと、Java 仮想マシンは、仮想マシン内の各メソッドのデバッグ情報をそのメソッド呼び出しの時点で出力します。この情報の書式や、出力先となるファイルなどの出力ストリームは、ホスト環境によって異なります。この機能をサポートしない場合、仮想マシンは要求を無視する場合があります。  

引数を false にしてこのメソッドを呼び出すと、仮想マシンは、呼び出しごとのデバッグ情報の出力を停止します。

パラメータ:
on - メソッドのトレースを行う場合は true、この機能を無効にする場合は false

load

public void load(String filename)
指定されたファイル名をダイナミックライブラリとしてロードします。filename 引数は完全なパス名である必要があります。java_g から利用すると、「so」の前に「_g」が自動的に挿入されます (例: Runtime.getRuntime().load("/home/avh/lib/libX11.so");)。  

まず、セキュリティーマネージャーが存在する場合、その checkLink メソッドを呼び出します。引数には filename を指定します。これはセキュリティー例外となる場合があります。  

これは loadLibrary(String) メソッドと似ていますが、ライブラリ名ではなく一般的なファイル名を引数として指定できるため、ネイティブコードで書かれた任意のファイルがロード可能になります。  

このメソッドを呼び出すには、System.load(String) メソッドが一般的で便利です。

パラメータ:
filename - ロードするファイル
例外:
SecurityException - セキュリティーマネージャーが存在し、セキュリティーマネージャーの checkLink メソッドが、指定されたダイナミックライブラリのロードを許可しない場合
UnsatisfiedLinkError - ファイルが存在しない場合
関連項目:
getRuntime(), SecurityException, SecurityManager.checkLink(java.lang.String)

loadLibrary

public void loadLibrary(String libname)
指定されたライブラリ名を持つダイナミックライブラリをロードします。ネイティブコードが書かれているファイルは、ローカルファイルシステムの、ライブラリファイルを通常の方法で取得できる場所からロードされます。このプロセスの詳細は、実装によって異なります。ライブラリ名を特定のファイル名に対応付ける処理は、システム特有の方法で行われます。  

まず、セキュリティーマネージャーが存在する場合、その checkLink メソッドを呼び出します。 引数には libname を指定します。これはセキュリティー例外となる場合があります。  

このメソッドを呼び出すには、System.loadLibrary(String) メソッドが一般的で便利です。ネイティブメソッドをクラスの実装で使用する場合、標準的には、ネイティブコードをライブラリファイル (ここでは、説明上 LibFile とする) に入れてから、クラス宣言に次の static 初期化子を入れます。

 static { System.loadLibrary("LibFile"); }
 
こうすれば、クラスがロードおよび初期化されるとき、ネイティブメソッドに必要なネイティブコードの実装も同じようにロードされます。  

同じライブラリ名を指定してこのメソッドを複数回呼び出しても、2 回目以降の呼び出しは無視されます。

パラメータ:
libname - ライブラリの名前
例外:
SecurityException - セキュリティーマネージャーが存在し、セキュリティーマネージャーの checkLink メソッドが、指定されたダイナミックライブラリのロードを許可しない場合
UnsatisfiedLinkError - ライブラリが存在しない場合
関連項目:
SecurityException, SecurityManager.checkLink(java.lang.String)

CDC 1.1.2

Copyright 2006 Sun Microsystems, Inc. All Rights Reserved. Use of this specification is subject to license terms.