Java プラットフォーム 1.2

java.lang
クラス Runtime

java.lang.Object
  |
  +--java.lang.Runtime

public class Runtime
extends Object

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

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

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

メソッドの概要
 Process exec(String command)
          指定された文字列コマンドを、独立したプロセスで実行します。
 Process exec(String[] cmdarray)
          指定されたコマンドと引数を、独立したプロセスで実行します。
 Process exec(String[] cmdarray, String[] envp)
          指定されたコマンドと引数を、指定された環境を持つ独立したプロセスで実行します。
 Process exec(String command, String[] envp)
          指定された文字列コマンドを、指定された環境を持つ独立したプロセスで実行します。
 void exit(int status)
          現在実行中の Java Virtual Machine を終了します。
 long freeMemory()
          システムの空きメモリの量を返します。
 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 load(String filename)
          指定されたファイル名をダイナミックライブラリとしてロードします。
 void loadLibrary(String libname)
          指定されたライブラリ名を持つダイナミックライブラリをロードします。
 void runFinalization()
          ファイナライズを中断しているオブジェクトの、finalize メソッドを実行します。
static void runFinalizersOnExit(boolean value)
          推奨されません。 このメソッドは、本質的に安全ではありません。他のスレッドが平行して処理している生存中のオブジェクトに対してファイナライザが呼び出されることがあり、この結果、動作が不安定になったり、デッドロックが発生したりします。
 long totalMemory()
          Java Virtual Machine のメモリの総容量を返します。
 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 Virtual Machine を終了します。このメソッドは通常は復帰しません。

まず、セキュリティマネージャが存在する場合、その checkExit メソッドがステータスを引数にして呼び出されます。この結果、セキュリティ例外が発生する場合があります。

引数はステータスコードを示します。通例、ゼロ以外のステータスコードは異常終了を表します。

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

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

runFinalizersOnExit

public static void runFinalizersOnExit(boolean value)
推奨されません。 このメソッドは、本質的に安全ではありません。他のスレッドが平行して処理している生存中のオブジェクトに対してファイナライザが呼び出されることがあり、この結果、動作が不安定になったり、デッドロックが発生したりします。
終了時の finalize メソッドを有効または無効にします。このようにすると、自動的に呼び出されなかった finalize メソッドを持つすべてのオブジェクトの finalize メソッドを、Java ランタイムの終了前に実行することができます。デフォルトでは、終了時のファイナライズは無効になっています。

セキュリティマネージャが存在する場合、その checkExit メソッドが引数を 0 としてまず呼び出され、終了が確実に許可されるようにします。このとき、SecurityException が発生する可能性もあります。

例外:
SecurityException - セキュリティマネージャが存在し、その checkExit メソッドが終了を許可しない場合
導入されたバージョン:
JDK1.1
関連項目:
exit(int), gc(), SecurityManager.checkExit(int)

exec

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

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

 new StringTokenizer(command)
 
このとき、文字カテゴリがこれ以上変更されることはありません。このメソッドの機能は exec(command, null) とまったく同じです。
パラメータ:
command - 実行するシステムコマンド
戻り値:
サブプロセスを管理する Process オブジェクト
例外:
SecurityException - セキュリティマネージャが存在し、その checkExec メソッドがサブプロセスの作成を許可しない場合
関連項目:
exec(java.lang.String, java.lang.String[]), SecurityManager.checkExec(java.lang.String)

exec

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

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

 new StringTokenizer(command)
 
このとき、文字カテゴリがこれ以上変更されることはありません。
パラメータ:
command - 実行するシステムコマンド
envp - 文字列の配列。各配列要素は、name=value という形式で環境変数設定を保持する
戻り値:
サブプロセスを管理する Process オブジェクト
例外:
SecurityException - セキュリティマネージャが存在し、その checkExec メソッドがサブプロセスの作成を許可しない場合
関連項目:
exec(java.lang.String[]), exec(java.lang.String[], java.lang.String[]), SecurityManager.checkExec(java.lang.String)

exec

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

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

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

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

exec

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

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

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

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

freeMemory

public long freeMemory()
システムの空きメモリの量を返します。gc メソッドを呼び出すと、freeMemory によって返される値が増える場合があります。
戻り値:
将来のオブジェクトに利用可能なメモリの推定総容量 (バイト単位)

totalMemory

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

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

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

gc

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

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

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


runFinalization

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

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

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

関連項目:
Object.finalize()

traceInstructions

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

boolean 引数に false を指定すると、Java Virtual Machine は命令の詳細トレースの出力を停止します。

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

traceMethodCalls

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

引数を false にしてこのメソッドを呼び出すと、Java Virtual Machine は、呼び出しごとのデバッグ情報の出力を停止します。

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

load

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

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

checkLink メソッドは 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)

getLocalizedInputStream

public InputStream getLocalizedInputStream(InputStream in)
推奨されません。 JDK 1.1 では、ローカルなエンコーディングのバイトストリームを Unicode の文字ストリームに変換するには、InputStreamReader クラスと BufferedReader クラスを使う方が適切です。
地域対応された入力ストリームを作成します。このメソッドは InputStream を受け取り、地域対応されている以外は引数のストリームとまったく同じである InputStream を返します。ローカル文字セットの文字をストリームから読み込む際には、ローカル文字セットから Unicode に自動的に変換します。

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

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

getLocalizedOutputStream

public OutputStream getLocalizedOutputStream(OutputStream out)
推奨されません。 JDK 1.1 では、Unicode の文字ストリームをローカルなエンコードディングのバイトストリームに変換するには、OutputStreamWriter クラス、BufferedWriter クラス、および PrintWriter クラスを使う方が適切です。
地域対応された出力ストリームを作成します。このメソッドは OutputStream を受け取り、地域対応されている以外は引数のストリームとまったく同じである OutputStream を返します。Unicode をストリームに書き込む際には、Unicode からローカル文字セットに自動的に変換します。

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

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

Java プラットフォーム 1.2

バグや機能要求の報告
新しい javadoc の表示についてのコメントやご提案
Java は、米国およびその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-1998 Sun Microsystems, Inc. 901 San Antonio Road,
Palo Alto, California, 94303, U.S.A. All Rights Reserved.