System
クラスには有用なクラス・フィールドおよびメソッドがあります。 インスタンス化することはできません。 System
クラスによって得られる機能には、標準入力、標準出力、およびエラー出力ストリーム、外部的に定義されたプロパティおよび環境変数へのアクセス、ファイルおよびライブラリのローディング方法、配列の一部をすばやくコピーするユーティリティ・メソッドがあります。 - 導入されたバージョン:
- 1.0
-
ネストされたクラスのサマリー
修飾子と型クラス説明static interface
System.Logger
インスタンスは、LoggerFinder
が使用する基礎となるロギング・フレームワークにルーティングされるログ・メッセージを記録します。static class
LoggerFinder
サービスは、使用する基礎となるフレームワークへのロガーの作成、管理、および構成を担当します。 -
フィールドのサマリー
修飾子と型フィールド説明static final PrintStream
「標準」エラー出力ストリームです。static final InputStream
「標準」入力ストリームです。static final PrintStream
「標準」出力ストリームです。 -
メソッドのサマリー
修飾子と型メソッド説明static void
指定位置で開始する指定ソース配列から、転送先配列の指定位置に配列をコピーします。static String
clearProperty
(String key) 指定されたキーによって示されたシステム・プロパティを削除します。static Console
console()
現在のJava仮想マシンに関連した一意のConsole
オブジェクトがある場合に、それを返します。static long
ミリ秒で表される現在の時間を返します。static void
exit
(int status) Java Virtual Machineの「停止シーケンス」を開始します。static void
gc()
Java Virtual Machineでガベージ・コレクタを実行します。getenv()
現在のシステム環境の変更できない文字列マップのビューを返します。static String
指定された環境変数の値を取得します。static System.Logger
呼び出し元が使用するLogger
のインスタンスを返します。static System.Logger
getLogger
(String name, ResourceBundle bundle) 呼び出し側が使用するLogger
のローカライズ可能なインスタンスを返します。static Properties
現在のシステム・プロパティを決定します。static String
getProperty
(String key) 指定されたキーによって示されるシステム・プロパティを取得します。static String
getProperty
(String key, String def) 指定されたキーによって示されるシステム・プロパティを取得します。static SecurityManager
削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。このメソッドは、非推奨であり、今後のリリースで削除される可能性があります。「セキュリティ・マネージャ」と組み合わせて使用すると便利です。static int
指定されたオブジェクトのクラスがhashCode()をオーバーライドしているかどうかに関係なく、デフォルトのhashCode()メソッドにより返されるものと同じ、指定されたオブジェクトのハッシュ・コードを返します。static Channel
Java仮想マシンを作成したエンティティから継承されたチャネルを返します。static String
システムに依存する行区切り文字列を返します。static void
filename引数によって指定されたネイティブ・ライブラリをロードします。static void
loadLibrary
(String libname) 引数libname
によって指定されるネイティブ・ライブラリをロードします。static String
mapLibraryName
(String libname) ライブラリ名を、ネイティブ・ライブラリを表すプラットフォーム依存の文字列にマッピングします。static long
nanoTime()
実行中のJava仮想マシンの高精度時間ソースの現在値を、ナノ秒の単位で返します。static void
削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。最終決定は削除のために非推奨になりました。static void
setErr
(PrintStream err) 「標準」エラー出力ストリームを割り当てし直します。static void
setIn
(InputStream in) 「標準」入力ストリームを割り当てし直します。static void
setOut
(PrintStream out) 「標準」出力ストリームを割り当てし直します。static void
setProperties
(Properties props) システム・プロパティを引数Properties
に設定します。static String
setProperty
(String key, String value) 指定されたキーによって示されるシステム・プロパティを設定します。static void
削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。このメソッドは、非推奨であり、今後のリリースで削除される可能性があります。「セキュリティ・マネージャ」と組み合わせて使用すると便利です。
-
フィールド詳細
-
in
public static final InputStream in「標準」入力ストリームです。 このストリームはすでに開いていて、入力データの供給が可能です。 通常、このストリームはキーボード入力、またはホスト環境やユーザーによって指定されるその他の入力ソースと一致しています。 このストリームがInputStreamReader
にラップされている場合は、文字セットにConsole.charset()
を使用するか、Console.reader()
の使用を検討してください。- 関連項目:
-
out
public static final PrintStream out「標準」出力ストリームです。 このストリームはすでに開いていて、出力データの受け取りが可能です。 通常、このストリームはディスプレイ出力、またはホスト環境やユーザーによって指定される出力先の出力と一致します。 文字からバイトへの変換で使用されるエンコーディングは、Console
が存在する場合はConsole.charset()
、それ以外の場合はstdout.encodingと同等です。単純なスタンドアロンのJavaアプリケーションにおいて、出力データの行を書き込む一般的な方法は以下のとおりです。
System.out.println(data)
クラス
PrintStream
のprintln
メソッドを参照してください。- 関連項目:
-
err
public static final PrintStream err「標準」エラー出力ストリームです。 このストリームはすでに開いていて、出力データの受け取りが可能です。通常、このストリームはディスプレイ出力、またはホスト環境やユーザーによって指定される出力先の出力と一致します。 主な出力ストリームである変数
out
値が、一般的に継続的には監視されていないファイルまたはその他の転送先にリダイレクトしている場合でも、ユーザーに注意を促すためのエラー・メッセージまたはその他の情報を表示するために、通例この出力ストリームが使用されます。「標準」入力ストリームを割り当てし直します。 文字からバイトへの変換で使用されるエンコーディングは、Console
が存在する場合はConsole.charset()
、それ以外の場合はstderr.encodingと同等です。- 関連項目:
-
-
メソッドの詳細
-
setIn
public static void setIn(InputStream in) 「標準」入力ストリームを割り当てし直します。 セキュリティ・マネージャが存在する場合は、標準入力ストリームを割り当てし直してよいかどうかを確認するために、RuntimePermission("setIO")
アクセス権を使ってcheckPermission
メソッドが呼び出されます。- パラメータ:
in
- 新しい標準入力ストリーム。- 例外:
SecurityException
- セキュリティ・マネージャが存在し、そのcheckPermission
メソッドが標準入力ストリームの再割り当てを許可しない場合。- 導入されたバージョン:
- 1.1
- 関連項目:
-
setOut
public static void setOut(PrintStream out) 「標準」出力ストリームを割り当てし直します。 セキュリティ・マネージャが存在する場合は、標準出力ストリームを割り当てし直してよいかどうかを確認するために、RuntimePermission("setIO")
アクセス権を使ってcheckPermission
メソッドが呼び出されます。- パラメータ:
out
- 新しい標準出力ストリーム- 例外:
SecurityException
- セキュリティ・マネージャが存在し、そのcheckPermission
メソッドが標準出力ストリームの再割り当てを許可しない場合。- 導入されたバージョン:
- 1.1
- 関連項目:
-
setErr
public static void setErr(PrintStream err) 「標準」エラー出力ストリームを割り当てし直します。 セキュリティ・マネージャが存在する場合は、標準エラー出力ストリームを割り当てし直してよいかどうかを確認するために、RuntimePermission("setIO")
アクセス権を使ってcheckPermission
メソッドが呼び出されます。- パラメータ:
err
- 新しい標準エラー出力ストリーム。- 例外:
SecurityException
- セキュリティ・マネージャが存在し、そのcheckPermission
メソッドが標準エラー出力ストリームの再割り当てを許可しない場合。- 導入されたバージョン:
- 1.1
- 関連項目:
-
console
public static Console console()現在のJava仮想マシンに関連した一意のConsole
オブジェクトがある場合に、それを返します。- 戻り値:
- システム・コンソール(存在する場合)、それ以外の場合は
null
。 - 導入されたバージョン:
- 1.6
-
inheritedChannel
public static Channel inheritedChannel() throws IOExceptionJava仮想マシンを作成したエンティティから継承されたチャネルを返します。 このメソッドから返されるチャネルは、システム全体のデフォルトのSelectorProvider
オブジェクトのinheritedChannel
メソッドを呼び出して取得されたものです。このメソッドは、
inheritedChannel
で説明したネットワーク指向のチャネルに加え、将来的にほかの種類のチャネルも返すようになる予定です。- 戻り値:
- 継承されたチャネル(存在する場合)、それ以外の場合は
null
。 - 例外:
IOException
- 入出力エラーが発生した場合SecurityException
- セキュリティ・マネージャがインストールされていて、チャネルへのアクセスが許可されていない場合。- 導入されたバージョン:
- 1.5
-
setSecurityManager
@Deprecated(since="17", forRemoval=true) public static void setSecurityManager(SecurityManager sm) 削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。このメソッドは、非推奨であり、今後のリリースで削除される可能性があります。「セキュリティ・マネージャ」と組み合わせて使用すると便利です。 そのため、このメソッドは非推奨であり、削除される可能性があります。 Security Managerまたはこのメソッドに置換はありません。システム全体のセキュリティ・マネージャを設定します。 セキュリティ・マネージャがすでにインストールされている場合、このメソッドは、最初にRuntimePermission("setSecurityManager")
アクセス権を使ってセキュリティ・マネージャのcheckPermission
メソッドを呼び出すことにより、既存のセキュリティ・マネージャを置換してもよいかどうかを確認します。 その結果、SecurityException
がスローされることがあります。そうでない場合は、引数を現在のセキュリティ・マネージャに設定します。 引数が
null
であり、セキュリティ・マネージャが設定されていない場合、メソッドは何も行わずに復帰します。- 実装上のノート:
- JDK実装で、システム・プロパティ
java.security.manager
でJava仮想マシンが起動され、特殊トークン"disallow
"が設定または設定されていない場合、setSecurityManager
メソッドを使用してセキュリティ・マネージャを設定することはできません。 詳細は、次の「SecurityManager
クラス仕様のセクション」を参照してください。 - パラメータ:
sm
- セキュリティ・マネージャまたはnull
- 例外:
SecurityException
- セキュリティ・マネージャがすでに設定されており、そのcheckPermission
メソッドがセキュリティ・マネージャの置換を許可しない場合UnsupportedOperationException
-sm
がnull以外で、セキュリティ・マネージャを動的に設定できない場合- 関連項目:
-
getSecurityManager
@Deprecated(since="17", forRemoval=true) public static SecurityManager getSecurityManager()削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。このメソッドは、非推奨であり、今後のリリースで削除される可能性があります。「セキュリティ・マネージャ」と組み合わせて使用すると便利です。 そのため、このメソッドは非推奨であり、削除される可能性があります。 Security Managerまたはこのメソッドに置換はありません。システム全体のセキュリティ・マネージャを取得します。- 戻り値:
- セキュリティ・マネージャがすでに現在のアプリケーションに設定されている場合は、セキュリティ・マネージャ。そうでない場合は
null
。 - 関連項目:
-
currentTimeMillis
public static long currentTimeMillis()ミリ秒で表される現在の時間を返します。 戻り値の時間単位はミリ秒ですが、値の粒度は基本となるオペレーティング・システムによって異なり、単位がより大きくなる場合があります。 たとえば、多くのオペレーティング・システムでは、時間を10ミリ秒の単位で計測します。「コンピュータ時間」と協定世界時(UTC)との間に発生する微妙な相違については、クラス
Date
の説明を参照してください。- 戻り値:
- ミリ秒で測定した、現在時刻と協定世界時のUTC 1970年1月1日深夜零時との差。
- 関連項目:
-
nanoTime
public static long nanoTime()実行中のJava仮想マシンの高精度時間ソースの現在値を、ナノ秒の単位で返します。 このメソッドは、経過時間を測定するためだけに使用できます。システムのほかの概念や壁時計の時刻に関連していません。 返される値は、固定された任意の基準時間からの経過時間(ナノ秒)です。将来的に、値が負の数になる可能性があります。 あるJava仮想マシンのインスタンス内でのこのメソッドのすべての呼出しでは、同じ情報源が使用されます。ほかの仮想マシン・インスタンスでは、おそらく異なる情報源が使用されます。このメソッドが提供する精度はナノ秒ですが、その解像度(つまり値の変更頻度)は必ずしもナノ秒ではありません。その解像度は少なくとも
currentTimeMillis()
と同じである、という以外の保証は一切ありません。約292年(263ナノ秒)を超える連続した呼出しの差異では、数値のオーバーフローにより経過時間が正しく計算されません。
このメソッドから返される値に意味があるのは、Java仮想マシンの同じインスタンス内で得られたそうした2つの値の差を計算する場合だけです。
たとえば、一部のコードで実行にかかる時間を測定するには、次のようになります。
long startTime = System.nanoTime(); // ... the code being measured ... long elapsedNanos = System.nanoTime() - startTime;
経過時間とタイムアウトを比較するには、次のコマンドを使用
if (System.nanoTime() - startTime >= timeoutNanos) ...
if (System.nanoTime() >= startTime + timeoutNanos) ...
- 戻り値:
- 実行中のJava仮想マシンの高精度時間ソースの現在値(ナノ秒の単位)
- 導入されたバージョン:
- 1.5
-
arraycopy
指定位置で開始する指定ソース配列から、転送先配列の指定位置に配列をコピーします。 配列要素のサブシーケンスを、src
によって参照されるソース配列からdest
によって参照される転送先配列にコピーします。 コピーされる要素の数は、引数length
と一致します。 ソース配列のsrcPos
からsrcPos+length-1
までの位置にある要素を、転送先の配列のdestPos
からdestPos+length-1
までの位置にそれぞれコピーします。引数
src
およびdest
が同じ配列オブジェクトである場合、たとえば、まずsrcPos
からsrcPos+length-1
までの位置にある要素をlength
の数の要素を持つ一時配列にコピーし、次に一時配列の内容を転送先配列のdestPos
からdestPos+length-1
にコピーします。dest
がnull
の場合、NullPointerException
がスローされます。src
がnull
の場合、NullPointerException
がスローされ、転送先の配列は変更されません。次のどれかがtrueである場合は、
ArrayStoreException
をスローし、転送先を修正しません。- 引数
src
が、配列でないオブジェクトを参照する。 - 引数
dest
が、配列でないオブジェクトを参照する。 - 引数
src
および引数dest
が、要素の種類が異なるプリミティブ型の配列である。 - 引数
src
がプリミティブ要素型の配列であり、引数dest
が参照要素型の配列である。 - 引数
src
が参照要素型の配列であり、引数dest
がプリミティブ要素型の配列である。
次のどれかがtrueである場合は、
IndexOutOfBoundsException
をスローし、転送先を修正しません。- 引数
srcPos
が負の値である。 - 引数
destPos
が負の値である。 - 引数
length
が負の値である。 srcPos+length
がsrc.length
(ソース配列の長さ)より大きい場合。destPos+length
がdest.length
(転送先配列の長さ)より大きい場合。
そうでない場合、
srcPos
からsrcPos+length-1
までの位置にあるソース配列の実際の要素が、代入変換によって転送先配列の要素型に変換できないときは、ArrayStoreException
をスローします。 この場合、kを長さよりも小さく、負以外の最小整数型にして、src[srcPos+
k]
を転送先配列のコンポーネント型に変換できないようにします。例外をスローする場合、srcPos
からsrcPos+
k-1
に位置するソース配列コンポーネントはすでにdestPos
からdestPos+
k-1
に位置する転送先配列にコピーされています。また、転送先配列のその他の位置は修正されていません。 前述の制約のため、上記の記述は実際には両方の配列が参照型の要素型を持つ状況でだけ有効です。- パラメータ:
src
- 転送元配列。srcPos
- ソース配列の開始位置。dest
- 転送先配列。destPos
- 転送先データ内の開始位置。length
- コピーされる配列要素の数。- 例外:
IndexOutOfBoundsException
- コピーによって配列の境界を越えたデータのアクセスが生じた場合。ArrayStoreException
- 型の不一致により、配列src
の要素が配列dest
に保存できなかった場合。NullPointerException
-src
とdest
のどちらかがnull
の場合。
- 引数
-
identityHashCode
public static int identityHashCode(Object x) 指定されたオブジェクトのクラスがhashCode()をオーバーライドしているかどうかに関係なく、デフォルトのhashCode()メソッドにより返されるものと同じ、指定されたオブジェクトのハッシュ・コードを返します。 参照nullのハッシュ・コードはゼロです。- パラメータ:
x
- ハッシュ・コードが計算されるオブジェクト- 戻り値:
- ハッシュ・コード
- 導入されたバージョン:
- 1.1
- 関連項目:
-
getProperties
public static Properties getProperties()現在のシステム・プロパティを決定します。 まず、セキュリティ・マネージャが存在する場合は、引数なしでそのcheckPropertiesAccess
メソッドを呼び出します。 これはセキュリティ例外となる場合があります。getProperty(String)
メソッドで使用される現在のシステム・プロパティのセットが、Properties
オブジェクトとして返されます。 システム・プロパティの現在のセットがない場合、システム・プロパティのセットをまず作成してから初期化します。 このシステム・プロパティのセットには、値がオプションであることを示す場合を除き、次の各キーの値が含まれます。Key 対応する値の説明 java.version
Java Runtime Environmentバージョン、 Runtime.Version
と解釈される可能性があります。java.version.date
Java Runtime Environmentバージョン日付(「ISO-8601 YYYY-MM-DD」形式)、 LocalDate
と解釈される可能性があります。java.vendor
Java Runtime Environmentのベンダー java.vendor.url
JavaベンダーのURL java.vendor.version
Javaベンダー・バージョンの(optional) java.home
Javaのインストール先ディレクトリ java.vm.specification.version
Java Virtual Machine仕様のバージョン。その値は「ランタイム・バージョン」のfeature要素です。 java.vm.specification.vendor
Java仮想マシンの仕様のベンダー java.vm.specification.name
Java仮想マシンの仕様名 java.vm.version
Runtime.Version
として解釈されるJava Virtual Machineの実装バージョンjava.vm.vendor
Java仮想マシンの実装のベンダー java.vm.name
Java仮想マシンの実装名 java.specification.version
Java Runtime Environment仕様バージョン(その値は「ランタイム・バージョン」のfeature要素) java.specification.maintenance.version
Java Runtime Environment仕様のメンテナンス、正の整数(optional, see below)として解釈できます java.specification.vendor
Java Runtime Environmentの仕様のベンダー java.specification.name
Java Runtime Environmentの仕様名 java.class.version
Javaクラスの形式のバージョン番号 java.class.path
Javaクラス・パス(詳細は、 ClassLoader.getSystemClassLoader()
を参照してください。)java.library.path
ライブラリのロード時に検索するパスのリスト java.io.tmpdir
デフォルト一時ファイルのパス java.compiler
使用するJITコンパイラの名前 os.name
オペレーティング・システム名 os.arch
オペレーティング・システムのアーキテクチャ os.version
オペレーティング・システムのバージョン file.separator
ファイル区切り文字(UNIXでは"/") path.separator
パス区切り文字(UNIXでは":") line.separator
行区切り文字(UNIXでは"\n") user.name
ユーザーのアカウント名 user.home
ユーザーのホーム・ディレクトリ user.dir
ユーザーの現在の作業ディレクトリ native.encoding
ホスト環境またはユーザー設定(あるいはその両方)から導出された文字エンコーディング名。 このシステム・プロパティを設定しても効果はありません。 stdout.encoding
System.out
の文字エンコーディング名。 Javaランタイムは、システム・プロパティをUTF-8
に設定して起動でき、別の値に設定したプロパティから開始すると、未定義の動作になります。stderr.encoding
System.err
の文字エンコーディング名。 Javaランタイムは、システム・プロパティをUTF-8
に設定して起動でき、別の値に設定したプロパティから開始すると、未定義の動作になります。java.specification.maintenance.version
プロパティは、構築時にこのランタイムによって実装された仕様が「メンテナンス・リリース」を受けていた場合に定義されます。 定義されている場合、その値はそのメンテナンス・リリースを識別します。 最初のメンテナンス・リリースを示すために、このプロパティの値は"1"
になり、2番目のメンテナンス・リリースを示す場合、このプロパティの値は"2"
になります。システム・プロパティ値内の複数のパスは、プラットフォーム固有のパス区切り文字で区切られます。
セキュリティ・マネージャは、
getProperties
オペレーションを許可しない場合でも、getProperty(String)
オペレーションを許可する場合があります。- APIのノート:
- 標準システム・プロパティを変更すると、特に指定されていないかぎり、予期しない結果が生じる可能性があります。 プロパティ値は、初期化中または最初の使用時にキャッシュできます。
getProperties()
、setProperties(Properties)
、setProperty(String, String)
、またはclearProperty(String)
を使用した初期化後の標準プロパティの設定は、期待した効果がないかもしれません。 - 実装上のノート:
- 標準システム・プロパティに加えて、システム・プロパティには次のキーが含まれます:
Key 対応する値の説明 jdk.module.path
アプリケーション・モジュールのパス jdk.module.upgrade.path
アップグレード・モジュールのパス jdk.module.main
初期/メイン・モジュールのモジュール名 jdk.module.main.class
初期モジュールのメイン・クラス名 file.encoding
デフォルトの文字セットの名前。デフォルトは UTF-8
です。 このプロパティは、コマンドラインで値UTF-8
またはCOMPAT
に設定できます。 コマンドラインで値COMPAT
に設定されている場合、値は起動時にnative.encoding
プロパティの値に置き換えられます。 プロパティをUTF-8
またはCOMPAT
以外の値に設定すると、不特定の動作になります。 - 戻り値:
- システム・プロパティ
- 例外:
SecurityException
- セキュリティ・マネージャが存在し、セキュリティ・マネージャのcheckPropertiesAccess
メソッドがシステム・プロパティへのアクセスを許可しない場合。- 関連項目:
-
lineSeparator
public static String lineSeparator()システムに依存する行区切り文字列を返します。 これは常に同じ値(システム・プロパティline.separator
の初期値)を返します。その戻り値は、UNIXシステムでは
"\n"
、Microsoft Windowsシステムでは"\r\n"
になります。- 戻り値:
- システムに依存する行区切り文字列
- 導入されたバージョン:
- 1.7
-
setProperties
public static void setProperties(Properties props) システム・プロパティを引数Properties
に設定します。 まず、セキュリティ・マネージャが存在する場合は、引数なしでそのcheckPropertiesAccess
メソッドを呼び出します。 これはセキュリティ例外となる場合があります。引数が、
getProperty(String)
メソッドで使用されるシステム・プロパティの現在のセットになります。 引数がnull
の場合、システム・プロパティの現在のセットはそのままです。- APIのノート:
- 「標準システム・プロパティを変更すると、特に指定されていないかぎり、予期しない結果が生じる可能性があります。」. 詳細については、getPropertiesを参照してください。
- パラメータ:
props
- 新しいシステム・プロパティ。- 例外:
SecurityException
- セキュリティ・マネージャが存在し、セキュリティ・マネージャのcheckPropertiesAccess
メソッドがシステム・プロパティへのアクセスを許可しない場合。- 関連項目:
-
getProperty
指定されたキーによって示されるシステム・プロパティを取得します。 まず、セキュリティ・マネージャが存在する場合は、checkPropertyAccess
メソッドがキーをその引数に指定して呼び出されます。 その結果、SecurityExceptionが発生することがあります。システム・プロパティの現在のセットがない場合、システム・プロパティのセットをまず作成し、
getProperties
メソッドと同じ方法で初期化します。- APIのノート:
- 「標準システム・プロパティを変更すると、特に指定されていないかぎり、予期しない結果が生じる可能性があります。」. 詳細については、getPropertiesを参照してください。
- パラメータ:
key
- システム・プロパティの名前。- 戻り値:
- システム・プロパティの文字列値。そのキーを持つプロパティが存在しない場合は
null
。 - 例外:
SecurityException
- セキュリティ・マネージャが存在し、セキュリティ・マネージャのcheckPropertyAccess
メソッドが指定されたシステム・プロパティへのアクセスを許可しない場合。NullPointerException
-key
がnull
である場合。IllegalArgumentException
-key
が空である場合。- 関連項目:
-
getProperty
指定されたキーによって示されるシステム・プロパティを取得します。 まず、セキュリティ・マネージャが存在する場合は、checkPropertyAccess
メソッドがkey
をその引数に指定して呼び出されます。システム・プロパティの現在のセットがない場合、システム・プロパティのセットをまず作成し、
getProperties
メソッドと同じ方法で初期化します。- パラメータ:
key
- システム・プロパティの名前。def
- デフォルト値。- 戻り値:
- システム・プロパティの文字列値。そのキーにプロパティがない場合はデフォルト値。
- 例外:
SecurityException
- セキュリティ・マネージャが存在し、セキュリティ・マネージャのcheckPropertyAccess
メソッドが指定されたシステム・プロパティへのアクセスを許可しない場合。NullPointerException
-key
がnull
である場合。IllegalArgumentException
-key
が空である場合。- 関連項目:
-
setProperty
指定されたキーによって示されるシステム・プロパティを設定します。 まず、セキュリティ・マネージャが存在する場合は、そのSecurityManager.checkPermission
メソッドがPropertyPermission(key, "write")
アクセス権で呼び出されます。 この結果、SecurityExceptionがスローされることがあります。 例外がスローされなかった場合は、指定されたプロパティが指定された値に設定されます。- APIのノート:
- 「標準システム・プロパティを変更すると、特に指定されていないかぎり、予期しない結果が生じる可能性があります。」. 詳細については、getPropertiesを参照してください。
- パラメータ:
key
- システム・プロパティの名前。value
- システム・プロパティの値。- 戻り値:
- システム・プロパティの以前の値。ない場合は
null
。 - 例外:
SecurityException
- セキュリティ・マネージャが存在し、そのcheckPermission
メソッドが、指定されたプロパティの設定を許可しない場合。NullPointerException
-key
またはvalue
がnull
の場合。IllegalArgumentException
-key
が空である場合。- 導入されたバージョン:
- 1.2
- 関連項目:
-
clearProperty
指定されたキーによって示されたシステム・プロパティを削除します。 まず、セキュリティ・マネージャが存在する場合は、そのSecurityManager.checkPermission
メソッドがPropertyPermission(key, "write")
アクセス権で呼び出されます。 この結果、SecurityExceptionがスローされることがあります。 例外がスローされなかった場合は、指定されたプロパティは削除されます。- APIのノート:
- 「標準システム・プロパティを変更すると、特に指定されていないかぎり、予期しない結果が生じる可能性があります。」. 詳細は、getPropertiesメソッドを参照してください。
- パラメータ:
key
- 削除されるシステム・プロパティの名前。- 戻り値:
- システム・プロパティの以前の文字列値。そのキーにプロパティがなかった場合は
null
。 - 例外:
SecurityException
- セキュリティ・マネージャが存在し、セキュリティ・マネージャのcheckPropertyAccess
メソッドが指定されたシステム・プロパティへのアクセスを許可しない場合。NullPointerException
-key
がnull
である場合。IllegalArgumentException
-key
が空である場合。- 導入されたバージョン:
- 1.5
- 関連項目:
-
getenv
指定された環境変数の値を取得します。 環境変数は、システム固有の外部にある名前付きの値です。セキュリティ・マネージャが存在する場合は、その
checkPermission
メソッドがRuntimePermission("getenv."+name)
権限で呼び出されます。 これにより、SecurityException
がスローされる可能性があります。 例外がスローされない場合、変数name
の値が返されます。システム・プロパティと環境変数はどちらも、名前と値の間で概念的にマップされています。 両方のメカニズムを使って、ユーザー定義情報をJavaプロセスに渡すことができます。 環境変数は、よりグローバルな効果を及ぼします。これは、プロセスにより定義されたすべての子孫にとって環境変数が直接のJavaサブプロセスであるばかりでなく、可視であるからです。 これらは、異なるオペレーティング・システム上で微妙に異なるセマンティックス(大文字と小文字を区別しないなど)を持つことができます。 これらの理由から、環境変数は意図しない副作用を持つ可能性が高くなります。 可能な場合は、システム・プロパティを使用することがもっとも適切です。 環境変数は、グローバルな効果が必要なときや、外部システム・インタフェースが環境変数(
PATH
など)を必要とするときに使う必要があります。UNIXシステムでは、
name
のアルファベットの大文字と小文字は区別されますが、Microsoft Windowsシステムでは一般に区別されません。 たとえば、Microsoft Windowsでは、式System.getenv("FOO").equals(System.getenv("foo"))
はおそらくtrueになります。- パラメータ:
name
- 環境変数の名前- 戻り値:
- 変数の文字列値。システム環境に変数が定義されていない場合は
null
- 例外:
NullPointerException
-name
がnull
である場合SecurityException
- セキュリティ・マネージャが存在し、そのcheckPermission
メソッドが環境変数name
へのアクセスを許可しない場合- 関連項目:
-
getenv
現在のシステム環境の変更できない文字列マップのビューを返します。 環境は、名前から値へのシステム依存のマッピングであり、親プロセスから子プロセスに渡されます。システムが環境変数をサポートしていない場合は、空のマップが返されます。
返されたマップは、nullのキーや値を含みません。 nullのキーや値があるか照会すると、
NullPointerException
がスローされます。String
以外の型のキーや値が存在するかどうかのクエリーを試みると、ClassCastException
がスローされます。返されたマップとそのコレクション・ビューは、
Object.equals(java.lang.Object)
メソッドとObject.hashCode()
メソッドの汎用規約に従わない可能性があります。返されたマップは、一般にすべてのプラットフォームで大文字と小文字を区別します。
セキュリティ・マネージャが存在する場合は、その
checkPermission
メソッドがRuntimePermission("getenv.*")
権限で呼び出されます。 これにより、SecurityException
がスローされる可能性があります。Javaサブプロセスに情報を渡す場合、一般的に環境変数よりもシステム・プロパティが推奨されます。
- 戻り値:
- 変数名から値へのマップとしての環境
- 例外:
SecurityException
- セキュリティ・マネージャが存在し、そのcheckPermission
メソッドがプロセス環境へのアクセスを許可しない場合- 導入されたバージョン:
- 1.5
- 関連項目:
-
getLogger
public static System.Logger getLogger(String name) 呼び出し元が使用するLogger
のインスタンスを返します。- APIのノート:
- このメソッドは、
LoggerFinder.getLogger
メソッドの呼び出しを延期し、たとえば、システムの初期化時にロガーを取得できるように、ロギング・バックエンドによって提供される実際のロガーを作成することを延期することがあります。 - 実装要件:
- このメソッドによって返されたインスタンスは、
LoggerFinder.getLogger(name, module)
を呼び出すことによって得られたロガーにメッセージをルーティングします。module
は呼び出し元モジュールです。 スタック(例えば、JNIにアタッチされたスレッドから直接呼び出された場合)に呼び出し元フレームがないコンテキストからSystem.getLogger
が呼び出された場合、IllegalCallerException
がスローされます。 このようなコンテキストでロガーを取得するには、暗黙的に呼び出し元として識別される補助クラスを使用するか、システムLoggerFinder
を使用してロガーを取得します。 後者を実行すると、基盤となるロギング・システムを熱心に初期化する可能性があることに注意してください。 - パラメータ:
name
- ロガーの名前。- 戻り値:
- 呼び出し側クラスで使用できる
System.Logger
のインスタンス。 - 例外:
NullPointerException
-name
がnull
の場合。IllegalCallerException
- スタックにJava呼び出し側フレームがない場合。- 導入されたバージョン:
- 9
-
getLogger
public static System.Logger getLogger(String name, ResourceBundle bundle) 呼び出し側が使用するLogger
のローカライズ可能なインスタンスを返します。 返されたロガーは、メッセージのローカライズに提供されたリソース・バンドルを使用します。- APIのノート:
- このメソッドは、システムが完全に初期化された後に使用されます。 このメソッドにより、
System.LoggerFinder
サービスの即時ロードと初期化がトリガーされる可能性があります。これにより、Java Runtimeがまだ具体的なサービス実装を初期化できない場合に問題が発生する可能性があります。 起動シーケンスの早い段階で読み込まれ、ローカライズされたメッセージをログに記録する必要があるシステム・クラスは、getLogger(java.lang.String)
を使用してロガーを作成し、リソース・バンドルをパラメータとして取るログ・メソッドを使用する必要があります。 - 実装要件:
- 返されたロガーは
LoggerFinder.getLocalizedLogger(name, bundle, module)
で指定されたメッセージのローカライズを実行します。module
は呼び出し側モジュールです。 スタック(例えば、JNIにアタッチされたスレッドから直接呼び出された場合)に呼び出し元フレームがないコンテキストからSystem.getLogger
が呼び出された場合、IllegalCallerException
がスローされます。 このようなコンテキストでロガーを取得するには、暗黙的に呼び出し元として識別される補助クラスを使用するか、システムLoggerFinder
を使用してロガーを取得します。 後者を実行すると、基盤となるロギング・システムを熱心に初期化する可能性があることに注意してください。 - パラメータ:
name
- ロガーの名前。bundle
- リソース・バンドル。- 戻り値:
System.Logger
のインスタンス。メッセージのローカライズに提供されたリソース・バンドルを使用します。- 例外:
NullPointerException
-name
がnull
またはbundle
がnull
の場合。IllegalCallerException
- スタックにJava呼び出し側フレームがない場合。- 導入されたバージョン:
- 9
-
exit
public static void exit(int status) Java Virtual Machineの「停止シーケンス」を開始します。 このメソッドは、常に無期限にブロックします。 引数はステータス・コードとして作用します。通例、ゼロ以外のステータス・コードは異常終了を示します。このメソッドは、クラス
Runtime
のexit
メソッドを呼び出します。 このメソッドは通常は復帰しません。System.exit(n)
の呼出しの動作は、実際には次の呼び出しと同じです。Runtime.getRuntime().exit(n)
- パラメータ:
status
- 終了のステータス。- 例外:
SecurityException
- セキュリティ・マネージャが存在し、そのcheckExit
メソッドが、指定されたステータスでの終了を許可しない場合。- 関連項目:
-
gc
public static void gc()Java Virtual Machineでガベージ・コレクタを実行します。gc
メソッドをコールすることにより、Java Virtual Machineが現在使用しているメモリーをJava Virtual Machineで再利用できるようにするために、使用されていないオブジェクトを再生するJava Virtual Machineの手間がかかりました。 制御がメソッド・コールから戻ると、Java Virtual Machineは、未使用のすべてのオブジェクトから領域を再利用するためのベスト・エフォートをしました。 この労力が特定の数の未使用オブジェクトをリサイクルしたり、一定の量の領域を再利用したり、一度に完了しても、メソッドが復帰するか、または必ずメソッドが戻ることは保証されません。 また、この作業によって、特定の数のオブジェクトにおける到達可能性の変更、または特定の数のReference
オブジェクトがクリアされてエンキューされるという保証はありません。System.gc()
の呼出しの動作は、実際には次の呼び出しと同じです。Runtime.getRuntime().gc()
- 関連項目:
-
runFinalization
@Deprecated(since="18", forRemoval=true) public static void runFinalization()削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。最終決定は削除のために非推奨になりました。 移行オプションについてのバックグラウンド情報および詳細は、Object.finalize()
を参照してください。ファイナライズが無効または削除されているJVMで実行する場合、オブジェクトはファイナライズを保留しないため、このメソッドは何もしません。
ファイナライズを保留しているオブジェクトのファイナライズ・メソッドを実行します。 このメソッドを呼び出すと、Java仮想マシンは、破棄されたにもかかわらずfinalize
メソッドが実行されていないオブジェクトのfinalize
メソッドを実行しようとします。 メソッドの呼び出しから制御が戻るのは、Java仮想マシンが、すべての未処理のファイナライズを最大限まで完了し終えたときです。System.runFinalization()
の呼出しの動作は、実際には次の呼び出しと同じです。Runtime.getRuntime().runFinalization()
- Java言語仕様を参照してください:
-
12.6 クラス・インスタンスのファイナライズ
- 関連項目:
-
load
public static void load(String filename) filename引数によって指定されたネイティブ・ライブラリをロードします。 filename引数は絶対パス名である必要があります。 filename引数(プラットフォーム固有のライブラリ接頭辞、パス、およびファイル拡張子がすべて取り除かれている場合)が、たとえばLという名前のライブラリを示し、Lというネイティブ・ライブラリがVMと静的にリンクされている場合は、ダイナミック・ライブラリのロードを試みるのではなく、そのライブラリによってエクスポートされるJNI_OnLoad_L関数が呼び出されます。 その引数と一致するファイル名がファイル・システム内に存在する必要はありません。 詳細については、「JNI仕様」を参照してください。 それ以外の場合、filename引数は実装に依存した方法でネイティブ・ライブラリ・イメージにマップされます。System.load(name)
の呼出しの動作は、実際には次の呼び出しと同じです。Runtime.getRuntime().load(name)
- パラメータ:
filename
- ロードするファイル。- 例外:
SecurityException
- セキュリティ・マネージャが存在し、そのcheckLink
メソッドが、指定されたダイナミック・ライブラリのロードを許可しない場合UnsatisfiedLinkError
- filenameが絶対パス名でない場合、ネイティブ・ライブラリがVMと静的にリンクされていない場合、またはホスト・システムがそのライブラリをネイティブ・ライブラリ・イメージにマップできない場合。NullPointerException
-filename
がnull
である場合- 関連項目:
-
loadLibrary
public static void loadLibrary(String libname) 引数libname
によって指定されるネイティブ・ライブラリをロードします。libname
引数には、プラットフォーム固有の接頭辞、ファイル拡張子、またはパスを含めないでください。libname
というネイティブ・ライブラリがVMと静的にリンクされている場合は、そのライブラリによってエクスポートされるJNI_OnLoad_libname
関数が呼び出されます。 詳細については、「JNI仕様」を参照してください。 それ以外の場合、libname引数はシステム・ライブラリのロケーションからロードされ、実装に依存する方法でネイティブ・ライブラリ・イメージにマップされます。System.loadLibrary(name)
呼出しの動作は、実際には次の呼び出しと同じですRuntime.getRuntime().loadLibrary(name)
- パラメータ:
libname
- ライブラリの名前。- 例外:
SecurityException
- セキュリティ・マネージャが存在し、そのcheckLink
メソッドが、指定されたダイナミック・ライブラリのロードを許可しない場合UnsatisfiedLinkError
- libname引数にファイル・パスが含まれている場合、ネイティブ・ライブラリがVMと静的にリンクされていない場合、またはホスト・システムがそのライブラリをネイティブ・ライブラリ・イメージにマップできない場合。NullPointerException
-libname
がnull
である場合- 関連項目:
-
mapLibraryName
ライブラリ名を、ネイティブ・ライブラリを表すプラットフォーム依存の文字列にマッピングします。- パラメータ:
libname
- ライブラリの名前。- 戻り値:
- プラットフォーム依存のネイティブ・ライブラリ名。
- 例外:
NullPointerException
-libname
がnull
である場合- 導入されたバージョン:
- 1.2
- 関連項目:
-