JavaTM 2 Platform
Standard Ed. 5.0

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 command, String[] envp)
          指定された文字列コマンドを、指定された環境を持つ独立したプロセスで実行します。
 Process exec(String command, String[] envp, File dir)
          指定された文字列コマンドを、指定された環境と作業ディレクトリを持つ独立したプロセスで実行します。
 void exit(int status)
          現在実行している Java 仮想マシンを、シャットダウンシーケンスを開始して終了します。
 long freeMemory()
          Java 仮想マシン内の空きメモリの量を返します。
 void gc()
          ガベージコレクタを実行します。
 InputStream getLocalizedInputStream(InputStream in)
          推奨されていません。 JDK 1.1 では、ローカルなエンコーディングのバイトストリームを Unicode の文字ストリームに変換するには、InputStreamReader クラスと BufferedReader クラスを使う方が適切です。
 OutputStream getLocalizedOutputStream(OutputStream out)
          推奨されていません。 JDK 1.1 では、Unicode の文字ストリームをローカルなエンコーディングのバイトストリームに変換するには、OutputStreamWriter クラス、BufferedWriter クラス、および PrintWriter クラスを使う方が適切です。
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()
          ファイナライズを中断しているオブジェクトの finalize メソッドを実行します。
static void runFinalizersOnExit(boolean value)
          推奨されていません。 このメソッドは本質的に安全ではありません。ほかのスレッドが同時にそれらのオブジェクトを操作しているときに、生存中のオブジェクトに対してファイナライザが呼び出され、これにより、エラー動作またはデッドロックが発生します。
 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 メソッドが一般的で便利です。

パラメータ:
status - 終了ステータス。通例、ゼロ以外のステータスコードは異常終了を示す
例外:
SecurityException - セキュリティマネージャが存在するときに、セキュリティマネージャの checkExit メソッドが指定されたステータスでの終了を許可しない場合
関連項目:
SecurityException, SecurityManager.checkExit(int), addShutdownHook(java.lang.Thread), removeShutdownHook(java.lang.Thread), runFinalizersOnExit(boolean), 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 メソッドとは異なり、このメソッドではシャットダウンフックを起動できず、終了時のファイナライズが有効な場合は呼び出されていないファイナライザを実行しません。すでにシャットダウンシーケンスが開始されている場合は、このメソッドは実行中のシャットダウンフックまたはファイナライザを待機しないで終了します。

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

runFinalizersOnExit

@Deprecated
public static void runFinalizersOnExit(boolean value)
推奨されていません。 このメソッドは本質的に安全ではありません。ほかのスレッドが同時にそれらのオブジェクトを操作しているときに、生存中のオブジェクトに対してファイナライザが呼び出され、これにより、エラー動作またはデッドロックが発生します。

終了時のファイナライズを有効または無効にします。これを実行することによって、自動的に呼び出されていないファイナライザを持つすべてのオブジェクトのファイナライザが呼び出され、Java Runtime の終了前に実行されるようになります。デフォルトでは終了時のファイナライズは無効になっています。

セキュリティマネージャが存在する場合は、確実に終了が許可されるように、最初に引数を 0 として checkExit メソッドが呼び出されます。この結果、SecurityException がスローされることがあります。

パラメータ:
value - 終了時のファイナライズを有効にする場合は true、無効にする場合は false
例外:
SecurityException - セキュリティマネージャが存在し、セキュリティマネージャの checkExit メソッドが終了を許可しない場合
導入されたバージョン:
JDK1.1
関連項目:
exit(int), gc(), SecurityManager.checkExit(int)

exec

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

これは、簡易メソッドです。このメソッドを exec(command) の形式で呼び出した場合、exec(command, null, null) の呼び出しと同じ結果が得られます。

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

exec

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

これは、簡易メソッドです。このメソッドを exec(command, envp) の形式で呼び出した場合、exec(command, envp, null) の呼び出しと同じ結果が得られます。

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

exec

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

これは、簡易メソッドです。このメソッドを exec(command, envp, dir) の形式で呼び出した場合、exec(cmdarray, envp, dir) の呼び出しと同じ結果が得られます。ここで、cmdarray は、command にあるすべてのトークンの配列です。

より正確には、command 文字列は文字カテゴリがこれ以上変更されることなく、new StringTokenizer(command) の呼び出しで作成された StringTokenizer を使ってトークンに分割されます。トークナイザで生成されたトークンは、同じ順序で新規文字列配列の cmdarray に配置されます。

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

exec

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

これは、簡易メソッドです。このメソッドを exec(cmdarray) の形式で呼び出した場合、exec(cmdarray, null, null) の呼び出しと同じ結果が得られます。

パラメータ:
cmdarray - 実行するコマンドと引数を含む配列
戻り値:
サブプロセスを管理するための新規 Process オブジェクト
例外:
SecurityException - セキュリティマネージャが存在し、checkExec メソッドがサブプロセスの作成を許可しない場合
IOException - 入出力エラーが発生した場合
NullPointerException - cmdarraynull の場合、または cmdarray のどれかの要素が null の場合
IndexOutOfBoundsException - cmdarray が長さが 0 の空の配列の場合
関連項目:
ProcessBuilder

exec

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

これは、簡易メソッドです。このメソッドを exec(cmdarray, envp) の形式で呼び出した場合、exec(cmdarray, envp, null) の呼び出しと同じ結果が得られます。

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

exec

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

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

このメソッドは、cmdarray が有効なオペレーティングシステムコマンドであることを確認します。どのコマンドが有効かはシステム依存ですが、コマンドは少なくとも null 以外の文字列の空でないリストでなければなりません。

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

現在、ProcessBuilder.start() は、変更された環境を持つプロセスを起動する方法として推奨されています。

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

セキュリティマネージャが存在する場合は、cmdarray 配列の最初のコンポーネントを引数として使って checkExec メソッドが呼び出されます。この結果、SecurityException がスローされることがあります。

オペレーティングシステムプロセスの起動はきわめてシステムに依存します。発生する可能性がある不具合は次のとおりです。

以上のケースでは、例外がスローされます。例外の正確な特性はシステムに依存しますが、これは常に IOException のサブクラスになります。

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

availableProcessors

public int availableProcessors()
Java 仮想マシンが利用可能なプロセッサの数を返します。

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

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

freeMemory

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

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

totalMemory

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

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

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

maxMemory

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

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

gc

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

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

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


runFinalization

public void runFinalization()
ファイナライズを中断しているオブジェクトの finalize メソッドを実行します。このメソッドを呼び出すと、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 - ファイルが存在しない場合
NullPointerException - filenamenull の場合
関連項目:
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 - ライブラリが存在しない場合
NullPointerException - libnamenull の場合
関連項目:
SecurityException, SecurityManager.checkLink(java.lang.String)

getLocalizedInputStream

@Deprecated
public InputStream getLocalizedInputStream(InputStream in)
推奨されていません。 JDK 1.1 では、ローカルなエンコーディングのバイトストリームを Unicode の文字ストリームに変換するには、InputStreamReader クラスと BufferedReader クラスを使う方が適切です。

地域対応された入力ストリームを作成します。このメソッドは InputStream を受け取り、地域対応されている以外は引数のストリームとまったく同じである InputStream を返します。ローカル文字セットの文字をストリームから読み込む際には、ローカル文字セットから Unicode に自動的に変換します。

引数に指定したストリームが地域対応済みである場合は、そのまま結果として返されます。

パラメータ:
in - 地域対応する InputStream
戻り値:
地域対応された入力ストリーム
関連項目:
InputStream, BufferedReader.BufferedReader(java.io.Reader), InputStreamReader.InputStreamReader(java.io.InputStream)

getLocalizedOutputStream

@Deprecated
public OutputStream getLocalizedOutputStream(OutputStream out)
推奨されていません。 JDK 1.1 では、Unicode の文字ストリームをローカルなエンコーディングのバイトストリームに変換するには、OutputStreamWriter クラス、BufferedWriter クラス、および PrintWriter クラスを使う方が適切です。

地域対応された出力ストリームを作成します。このメソッドは OutputStream を受け取り、地域対応されている以外は引数のストリームとまったく同じである OutputStream を返します。Unicode をストリームに書き込む際には、Unicode からローカル文字セットに自動的に変換します。

引数に指定したストリームが地域対応済みである場合は、そのまま結果として返されます。

パラメータ:
out - 地域対応する OutputStream
戻り値:
地域対応された出力ストリーム
関連項目:
OutputStream, BufferedWriter.BufferedWriter(java.io.Writer), OutputStreamWriter.OutputStreamWriter(java.io.OutputStream), PrintWriter.PrintWriter(java.io.OutputStream)

JavaTM 2 Platform
Standard Ed. 5.0

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java 2 SDK SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。