- java.lang.Object
-
- java.lang.Runtime
-
public class Runtime extends Object
JavaアプリケーションはすべてRuntime
クラスの単一のインスタンスを持ちます。このクラスは、アプリケーションとアプリケーション実行環境とのインタフェースになります。 現在のRuntimeオブジェクトは、getRuntime
メソッドにより取得できます。アプリケーションは、このクラスの独自のインスタンスを生成することはできません。
- 導入されたバージョン:
- 1.0
- 関連項目:
getRuntime()
-
-
ネストされたクラスのサマリー
ネストされたクラス 修飾子と型 クラス 説明 static class
Runtime.Version
Java SE Platformの実装用のバージョン文字列の表現。
-
メソッドのサマリー
すべてのメソッド staticメソッド インスタンス・メソッド 具象メソッド 非推奨のメソッド 修飾子と型 メソッド 説明 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()
ガベージ・コレクタを実行します。static Runtime
getRuntime()
現在のJavaアプリケーションに関連したRuntimeオブジェクトを返します。void
halt(int status)
現在実行中のJava仮想マシンを強制終了します。void
load(String filename)
filename引数によって指定されたネイティブ・ライブラリをロードします。void
loadLibrary(String libname)
引数libname
によって指定されるネイティブ・ライブラリをロードします。long
maxMemory()
Java仮想マシンが使用を試みる最大メモリー容量を返します。boolean
removeShutdownHook(Thread hook)
すでに登録した仮想マシンのシャットダウン・フックを登録解除します。void
runFinalization()
ファイナライズを保留しているオブジェクトのファイナライズ・メソッドを実行します。long
totalMemory()
Java仮想マシンのメモリーの総容量を返します。void
traceInstructions(boolean on)
削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。このメソッドは、命令のトレースを制御することを目的としていました。void
traceMethodCalls(boolean on)
削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。このメソッドは、メソッド呼び出しのトレースを制御することを目的としていました。static Runtime.Version
version()
Java Runtime EnvironmentのバージョンをRuntime.Version
として返します。
-
-
-
メソッドの詳細
-
getRuntime
public static Runtime getRuntime()
現在のJavaアプリケーションに関連したRuntimeオブジェクトを返します。Runtime
クラスのメソッドのほとんどはインスタンス・メソッドであり、現在のランタイム・オブジェクトに対応して呼び出されなければいけません。- 戻り値:
- 現在のJavaアプリケーションに関連した
Runtime
オブジェクト。
-
exit
public void exit(int status)
現在実行しているJava仮想マシンを、シャットダウン・シーケンスを開始して終了します。 このメソッドは通常は復帰しません。 引数はステータス・コードとして作用します。通例、ゼロ以外のステータス・コードは異常終了を示します。登録済「シャットダウン・フック」がある場合は、未指定の順序で起動し、終了するまで同時に実行できます。 これが行われると、仮想マシンが停止します。
すべてのシャットダウン・フックがすでに実行された後にこのメソッドが呼び出され、ステータスが0 (ゼロ)以外になった場合、このメソッドは指定されたステータス・コードで仮想マシンを停止します。 それ以外の場合、このメソッドは無期限にブロックされます。
System.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仮想マシンをシャットダウンします。
- 通常、プログラムexitsは、最後の非デーモン・スレッドが終了するか、
exit
(同等に、System.exit
)メソッドが呼び出されたとき、または - 仮想マシンは、
^C
の入力などによるユーザー割り込みや、ユーザー・ログオフまたはシステム・シャットダウンのようなシステム全体のイベントに応答して終了(terminate)します。
シャットダウン・フックは初期化されただけで起動していないスレッドです。 仮想マシンがシャットダウン・シーケンスを開始すると、すべての登録済みシャットダウン・フックを、指定されていない順序で起動し並行して実行します。 すべてのフックが終了すると、フックは停止します。
exit
メソッドを呼び出すことによってシャットダウンが開始された場合、非デーモン・スレッドと同様に、デーモン・スレッドはシャットダウン・シーケンス中に実行され続けることに注意してください。シャットダウン・シーケンスが開始されると、強制的に仮想マシンを終了する
halt
メソッドを呼び出すことによってのみ停止シーケンスを停止できます。いったんシャットダウン・シーケンスを起動すると、新しいシャットダウン・フックを登録したり、以前に登録したフックの登録を解除したりすることはできません。 これらの操作のいずれかを試行すると、
IllegalStateException
がスローされます。シャットダウン・フックは仮想マシンのライフ・サイクルの微妙な時期に起動するため、コーディングする場合は気を付ける必要があります。 特に、スレッドセーフに書き込む必要があり、できるかぎりデッドロックを避ける必要があります。 シャットダウン・フックを登録したサービスをうのみにせず、シャットダウンが進行中に登録する必要があります。 AWTイベント・ディスパッチ・スレッドなど、スレッド・ベースのその他のサービスを使用しようとすると、デッドロックが発生することがあります。
シャットダウン・フックは迅速に終了する必要もあります。 プログラムが
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)
- 通常、プログラムexitsは、最後の非デーモン・スレッドが終了するか、
-
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)
-
exec
public Process exec(String command) throws IOException
指定された文字列コマンドを、独立したプロセスで実行します。これは、簡易メソッドです。
exec(command)
の形式の呼び出しは、exec
(command, null, null)
の呼び出しとまったく同じように動作します。- パラメータ:
command
- 指定されたシステム・コマンド。- 戻り値:
- サブプロセス管理用の新しい
Process
オブジェクト - 例外:
SecurityException
- セキュリティ・マネージャが存在し、そのcheckExec
メソッドがサブプロセスの作成を許可しない場合IOException
- 入出力エラーが発生した場合NullPointerException
-command
がnull
の場合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
-command
がnull
の場合、または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)
という形式の呼び出しは、cmdarray
がcommand
内のすべてのトークンの配列であるexec
(cmdarray, envp, dir)
の呼び出しとまったく同じように動作します。より正確には、
command
文字列は、new {@link StringTokenizer}(command)
によって作成されたStringTokenizer
を使用して文字カテゴリをさらに変更することなく、トークンに分割されます。 トークナイザで生成されたトークンは、同じ順序で新規文字列配列のcmdarray
に配置されます。- パラメータ:
command
- 指定されたシステム・コマンド。envp
- 文字列の配列。配列の各要素は、name=valueという形式で環境変数設定を保持する。または、サブプロセスが現在のプロセスの環境を継承する場合はnull
。dir
- サブプロセスの作業ディレクトリ。サブプロセスが現在のプロセスの作業ディレクトリを継承する場合はnull
。- 戻り値:
- サブプロセス管理用の新しい
Process
オブジェクト - 例外:
SecurityException
- セキュリティ・マネージャが存在し、そのcheckExec
メソッドがサブプロセスの作成を許可しない場合IOException
- 入出力エラーが発生した場合NullPointerException
-command
がnull
の場合、または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
-cmdarray
がnull
の場合、または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
-cmdarray
がnull
の場合、cmdarray
のいずれかの要素がnull
の場合、またはenvp
のいずれかの要素がnull
の場合IndexOutOfBoundsException
-cmdarray
が長さ0
の空の配列の場合- 関連項目:
ProcessBuilder
-
exec
public Process exec(String[] cmdarray, String[] envp, File dir) throws IOException
指定されたコマンドと引数を、指定された環境と作業ディレクトリを持つ独立したプロセスで実行します。コマンド行のトークンを表す文字列の配列
cmdarray
、および環境変数の設定を表す文字列の配列envp
を指定すると、このメソッドは指定されたコマンドを実行するための新しいプロセスを作成します。このメソッドは、
cmdarray
が有効なオペレーティング・システム・コマンドであることを確認します。 どのコマンドが有効かはシステム依存ですが、コマンドは少なくともnull以外の文字列の空でないリストである必要があります。envp
がnull
の場合、サブプロセスは現在のプロセスの環境設定を継承します。一部のオペレーティング・システムでは、プロセスを起動するために最小限のシステム依存環境変数のセットが必要となる可能性があります。 このため、指定された環境に含まれていない追加の環境変数設定をサブプロセスが継承する可能性があります。
現在、
ProcessBuilder.start()
は、変更された環境を持つプロセスを起動する方法として推奨されています。新しいサブプロセスの作業ディレクトリは
dir
で指定します。dir
がnull
の場合、サブプロセスは現在のプロセスの現在の作業ディレクトリを継承します。セキュリティ・マネージャが存在する場合、その
checkExec
メソッドが、配列cmdarray
の最初のコンポーネントを引数に指定して呼び出されます。 これにより、SecurityException
がスローされる可能性があります。オペレーティング・システム・プロセスの起動はきわめてシステムに依存します。 発生する可能性がある不具合は次のとおりです。
- オペレーティング・システム・プログラム・ファイルが見つからなかった。
- プログラム・ファイルへのアクセス権が拒否された。
- 作業ディレクトリが存在しない。
以上のケースでは、例外がスローされます。 例外の正確な特性はシステムに依存しますが、これは常に
IOException
のサブクラスになります。オペレーティング・システムがプロセスの作成をサポートしていない場合は、
UnsupportedOperationException
がスローされます。- パラメータ:
cmdarray
- 実行するコマンドと引数を含む配列。envp
- 文字列の配列。配列の各要素は、name=valueという形式で環境変数設定を保持する。または、サブプロセスが現在のプロセスの環境を継承する場合はnull
。dir
- サブプロセスの作業ディレクトリ。サブプロセスが現在のプロセスの作業ディレクトリを継承する場合はnull
。- 戻り値:
- サブプロセス管理用の新しい
Process
オブジェクト - 例外:
SecurityException
- セキュリティ・マネージャが存在し、そのcheckExec
メソッドがサブプロセスの作成を許可しない場合UnsupportedOperationException
- オペレーティング・システムがプロセスの作成をサポートしていない場合。IOException
- 入出力エラーが発生した場合NullPointerException
-cmdarray
がnull
の場合、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()
ファイナライズを保留しているオブジェクトのファイナライズ・メソッドを実行します。 このメソッドを呼び出すと、Java仮想マシンは、破棄されたにもかかわらずfinalize
メソッドが実行されていないオブジェクトのfinalize
メソッドを実行しようとします。 メソッド呼び出しから制御が戻された時点で、仮想マシンはすべてのファイナライズを完了するよう最善を尽くしたことになります。runFinalization
メソッドが明示的には呼び出されなかった場合でも、仮想マシンはこのファイナライズ・プロセスを必要に応じて自動的に、別のスレッドで実行します。このメソッドを呼び出すには、
System.runFinalization()
メソッドが一般的で便利です。- 関連項目:
Object.finalize()
-
traceInstructions
@Deprecated(since="9", forRemoval=true) public void traceInstructions(boolean on)
削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。このメソッドは、命令のトレースを制御することを目的としていました。 JVM固有のトレース・メカニズムに置き換えられました。 このメソッドは、Java SEの将来のバージョンで削除される可能性があります。実装されておらず、何もしません。- パラメータ:
on
- ignored
-
traceMethodCalls
@Deprecated(since="9", forRemoval=true) public void traceMethodCalls(boolean on)
削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。このメソッドは、メソッド呼び出しのトレースを制御することを目的としていました。 JVM固有のトレース・メカニズムに置き換えられました。 このメソッドは、Java SEの将来のバージョンで削除される可能性があります。実装されておらず、何もしません。- パラメータ:
on
- ignored
-
load
public void load(String filename)
filename引数によって指定されたネイティブ・ライブラリをロードします。 filename引数は絶対パス名である必要があります(たとえばRuntime.getRuntime().load("/home/avh/lib/libX11.so");
)。 filename引数(プラットフォーム固有のライブラリ接頭辞、パス、およびファイル拡張子がすべて取り除かれている場合)が、たとえばLという名前のライブラリを示し、Lというネイティブ・ライブラリがVMと静的にリンクされている場合は、ダイナミック・ライブラリのロードを試みるのではなく、そのライブラリによってエクスポートされるJNI_OnLoad_L関数が呼び出されます。 その引数と一致するファイル名がファイル・システム内に存在する必要はありません。 詳細については、「JNI仕様」を参照してください。 それ以外の場合、filename引数は実装に依存した方法でネイティブ・ライブラリ・イメージにマップされます。まず、セキュリティ・マネージャが存在する場合は、
checkLink
メソッドがfilename
をその引数に指定して呼び出されます。 これはセキュリティ例外となる場合があります。これは
loadLibrary(String)
メソッドと似ていますが、ライブラリ名ではなく一般的なファイル名を引数として指定できるため、ネイティブ・コードで書かれた任意のファイルがロード可能になります。このメソッドを呼び出すには、
System.load(String)
メソッドが一般的で便利です。- パラメータ:
filename
- ロードするファイル。- 例外:
SecurityException
- セキュリティ・マネージャが存在し、そのcheckLink
メソッドが、指定されたダイナミック・ライブラリのロードを許可しない場合UnsatisfiedLinkError
- filenameが絶対パス名でない場合、ネイティブ・ライブラリがVMと静的にリンクされていない場合、またはホスト・システムがそのライブラリをネイティブ・ライブラリ・イメージにマップできない場合。NullPointerException
-filename
がnull
である場合- 関連項目:
getRuntime()
、SecurityException
,SecurityManager.checkLink(java.lang.String)
-
loadLibrary
public void loadLibrary(String libname)
引数libname
によって指定されるネイティブ・ライブラリをロードします。libname
引数には、プラットフォーム固有の接頭辞、ファイル拡張子、またはパスを含めないでください。libname
というネイティブ・ライブラリがVMと静的にリンクされている場合は、そのライブラリによってエクスポートされるJNI_OnLoad_libname
関数が呼び出されます。 詳細については、「JNI仕様」を参照してください。 それ以外の場合、libname引数はシステム・ライブラリの場所からロードされ、実装に依存した方法でネイティブ・ライブラリ・イメージにマップされます。まず、セキュリティ・マネージャが存在する場合は、
checkLink
メソッドがlibname
をその引数に指定して呼び出されます。 これはセキュリティ例外となる場合があります。このメソッドを呼び出すには、
System.loadLibrary(String)
メソッドが一般的で便利です。 ネイティブ・メソッドをクラスの実装で使用する場合、標準的には、ネイティブ・コードをライブラリ・ファイル(ここでは、説明上LibFile
とする)に入れてから、次のstatic初期化子を、
クラス宣言に入れます。 こうすれば、クラスがロードおよび初期化されるとき、ネイティブ・メソッドに必要なネイティブ・コードの実装も同じようにロードされます。static { System.loadLibrary("LibFile"); }
同じライブラリ名を指定してこのメソッドを複数回呼び出しても、2回目以降の呼出しは無視されます。
- パラメータ:
libname
- ライブラリの名前。- 例外:
SecurityException
- セキュリティ・マネージャが存在し、そのcheckLink
メソッドが、指定されたダイナミック・ライブラリのロードを許可しない場合UnsatisfiedLinkError
- libname引数にファイル・パスが含まれている場合、ネイティブ・ライブラリがVMと静的にリンクされていない場合、またはホスト・システムがそのライブラリをネイティブ・ライブラリ・イメージにマップできない場合。NullPointerException
-libname
がnull
である場合- 関連項目:
SecurityException
,SecurityManager.checkLink(java.lang.String)
-
version
public static Runtime.Version version()
Java Runtime EnvironmentのバージョンをRuntime.Version
として返します。- 戻り値:
- Java Runtime Environmentの
Runtime.Version
- 導入されたバージョン:
- 9
-
-