モジュール java.base
パッケージ java.lang

クラスSystem

java.lang.Object
java.lang.System

public final class System extends Object
Systemクラスには有用なクラス・フィールドおよびメソッドがあります。 インスタンス化することはできません。 Systemクラスによって得られる機能には、標準入力、標準出力、およびエラー出力ストリーム、外部的に定義されたプロパティおよび環境変数へのアクセス、ファイルおよびライブラリのローディング方法、配列の一部をすばやくコピーするユーティリティ・メソッドがあります。
導入されたバージョン:
1.0
  • ネストされたクラスのサマリー

    ネストされたクラス
    修飾子と型
    クラス
    説明
    static interface 
    System.Loggerインスタンスは、LoggerFinderが使用する基礎となるロギング・フレームワークにルーティングされるログ・メッセージを記録します。
    static class 
    LoggerFinderサービスは、使用する基礎となるフレームワークへのロガーの作成、管理、および構成を担当します。
  • フィールドのサマリー

    フィールド
    修飾子と型
    フィールド
    説明
    static final PrintStream
    「標準」エラー出力ストリームです。
    static final InputStream
    「標準」入力ストリームです。
    static final PrintStream
    「標準」出力ストリームです。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    static void
    arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
    指定位置で開始する指定ソース配列から、転送先配列の指定位置に配列をコピーします。
    static String
    指定されたキーによって示されたシステム・プロパティを削除します。
    static Console
    現在のJava仮想マシンに関連した一意のConsoleオブジェクトがある場合に、それを返します。
    static long
    ミリ秒で表される現在の時間を返します。
    static void
    exit(int status)
    Java Virtual Machineの「停止シーケンス」を開始します。
    static void
    gc()
    Java Virtual Machineでガベージ・コレクタを実行します。
    static Map<String,String>
    現在のシステム環境の変更できない文字列マップのビューを返します。
    static String
    getenv(String name)
    指定された環境変数の値を取得します。
    呼び出し元が使用するLoggerのインスタンスを返します。
    呼び出し側が使用するLoggerのローカライズ可能なインスタンスを返します。
    static Properties
    現在のシステム・プロパティを決定します。
    static String
    指定されたキーによって示されるシステム・プロパティを取得します。
    static String
    指定されたキーによって示されるシステム・プロパティを取得します。
    削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。
    このメソッドは、非推奨であり、今後のリリースで削除される可能性があります。「セキュリティ・マネージャ」と組み合わせて使用すると便利です。
    static int
    指定されたオブジェクトのクラスがhashCode()をオーバーライドしているかどうかに関係なく、デフォルトのhashCode()メソッドにより返されるものと同じ、指定されたオブジェクトのハッシュ・コードを返します。
    static Channel
    Java仮想マシンを作成したエンティティから継承されたチャネルを返します。
    static String
    システムに依存する行区切り文字列を返します。
    static void
    load(String filename)
    filename引数によって指定されたネイティブ・ライブラリをロードします。
    static void
    引数libnameによって指定されるネイティブ・ライブラリをロードします。
    static String
    ライブラリ名を、ネイティブ・ライブラリを表すプラットフォーム依存の文字列にマッピングします。
    static long
    実行中のJava仮想マシンの高精度時間ソースの現在値を、ナノ秒の単位で返します。
    static void
    削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。
    最終決定は削除のために非推奨になりました。
    static void
    「標準」エラー出力ストリームを割り当てし直します。
    static void
    「標準」入力ストリームを割り当てし直します。
    static void
    「標準」出力ストリームを割り当てし直します。
    static void
    システム・プロパティを引数Propertiesに設定します。
    static String
    setProperty(String key, String value)
    指定されたキーによって示されるシステム・プロパティを設定します。
    static void
    削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。
    このメソッドは、非推奨であり、今後のリリースで削除される可能性があります。「セキュリティ・マネージャ」と組み合わせて使用すると便利です。

    クラス java.lang.Objectで宣言されたメソッド

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • フィールド詳細

    • 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)
       

      クラスPrintStreamprintlnメソッドを参照してください。

      関連項目:
    • 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 IOException
      Java仮想マシンを作成したエンティティから継承されたチャネルを返します。 このメソッドから返されるチャネルは、システム全体のデフォルトの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

      public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
      指定位置で開始する指定ソース配列から、転送先配列の指定位置に配列をコピーします。 配列要素のサブシーケンスを、srcによって参照されるソース配列からdestによって参照される転送先配列にコピーします。 コピーされる要素の数は、引数lengthと一致します。 ソース配列のsrcPosからsrcPos+length-1までの位置にある要素を、転送先の配列のdestPosからdestPos+length-1までの位置にそれぞれコピーします。

      引数srcおよびdestが同じ配列オブジェクトである場合、たとえば、まずsrcPosからsrcPos+length-1までの位置にある要素をlengthの数の要素を持つ一時配列にコピーし、次に一時配列の内容を転送先配列のdestPosからdestPos+length-1にコピーします。

      destnullの場合、NullPointerExceptionがスローされます。

      srcnullの場合、NullPointerExceptionがスローされ、転送先の配列は変更されません。

      次のどれかがtrueである場合は、ArrayStoreExceptionをスローし、転送先を修正しません。

      • 引数srcが、配列でないオブジェクトを参照する。
      • 引数destが、配列でないオブジェクトを参照する。
      • 引数srcおよび引数destが、要素の種類が異なるプリミティブ型の配列である。
      • 引数srcがプリミティブ要素型の配列であり、引数destが参照要素型の配列である。
      • 引数srcが参照要素型の配列であり、引数destがプリミティブ要素型の配列である。

      次のどれかがtrueである場合は、IndexOutOfBoundsExceptionをスローし、転送先を修正しません。

      • 引数srcPosが負の値である。
      • 引数destPosが負の値である。
      • 引数lengthが負の値である。
      • srcPos+lengthsrc.length (ソース配列の長さ)より大きい場合。
      • destPos+lengthdest.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 - srcdestのどちらかが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

      public static String getProperty(String key)
      指定されたキーによって示されるシステム・プロパティを取得します。 まず、セキュリティ・マネージャが存在する場合は、checkPropertyAccessメソッドがキーをその引数に指定して呼び出されます。 その結果、SecurityExceptionが発生することがあります。

      システム・プロパティの現在のセットがない場合、システム・プロパティのセットをまず作成し、getPropertiesメソッドと同じ方法で初期化します。

      APIのノート:
      「標準システム・プロパティを変更すると、特に指定されていないかぎり、予期しない結果が生じる可能性があります。」. 詳細については、getPropertiesを参照してください。
      パラメータ:
      key - システム・プロパティの名前。
      戻り値:
      システム・プロパティの文字列値。そのキーを持つプロパティが存在しない場合はnull
      例外:
      SecurityException - セキュリティ・マネージャが存在し、セキュリティ・マネージャのcheckPropertyAccessメソッドが指定されたシステム・プロパティへのアクセスを許可しない場合。
      NullPointerException - keynullである場合。
      IllegalArgumentException - keyが空である場合。
      関連項目:
    • getProperty

      public static String getProperty(String key, String def)
      指定されたキーによって示されるシステム・プロパティを取得します。 まず、セキュリティ・マネージャが存在する場合は、checkPropertyAccessメソッドがkeyをその引数に指定して呼び出されます。

      システム・プロパティの現在のセットがない場合、システム・プロパティのセットをまず作成し、getPropertiesメソッドと同じ方法で初期化します。

      パラメータ:
      key - システム・プロパティの名前。
      def - デフォルト値。
      戻り値:
      システム・プロパティの文字列値。そのキーにプロパティがない場合はデフォルト値。
      例外:
      SecurityException - セキュリティ・マネージャが存在し、セキュリティ・マネージャのcheckPropertyAccessメソッドが指定されたシステム・プロパティへのアクセスを許可しない場合。
      NullPointerException - keynullである場合。
      IllegalArgumentException - keyが空である場合。
      関連項目:
    • setProperty

      public static String setProperty(String key, String value)
      指定されたキーによって示されるシステム・プロパティを設定します。 まず、セキュリティ・マネージャが存在する場合は、そのSecurityManager.checkPermissionメソッドがPropertyPermission(key, "write")アクセス権で呼び出されます。 この結果、SecurityExceptionがスローされることがあります。 例外がスローされなかった場合は、指定されたプロパティが指定された値に設定されます。
      APIのノート:
      「標準システム・プロパティを変更すると、特に指定されていないかぎり、予期しない結果が生じる可能性があります。」. 詳細については、getPropertiesを参照してください。
      パラメータ:
      key - システム・プロパティの名前。
      value - システム・プロパティの値。
      戻り値:
      システム・プロパティの以前の値。ない場合はnull
      例外:
      SecurityException - セキュリティ・マネージャが存在し、そのcheckPermissionメソッドが、指定されたプロパティの設定を許可しない場合。
      NullPointerException - keyまたはvaluenullの場合。
      IllegalArgumentException - keyが空である場合。
      導入されたバージョン:
      1.2
      関連項目:
    • clearProperty

      public static String clearProperty(String key)
      指定されたキーによって示されたシステム・プロパティを削除します。 まず、セキュリティ・マネージャが存在する場合は、そのSecurityManager.checkPermissionメソッドがPropertyPermission(key, "write")アクセス権で呼び出されます。 この結果、SecurityExceptionがスローされることがあります。 例外がスローされなかった場合は、指定されたプロパティは削除されます。
      APIのノート:
      「標準システム・プロパティを変更すると、特に指定されていないかぎり、予期しない結果が生じる可能性があります。」. 詳細は、getPropertiesメソッドを参照してください。
      パラメータ:
      key - 削除されるシステム・プロパティの名前。
      戻り値:
      システム・プロパティの以前の文字列値。そのキーにプロパティがなかった場合はnull
      例外:
      SecurityException - セキュリティ・マネージャが存在し、セキュリティ・マネージャのcheckPropertyAccessメソッドが指定されたシステム・プロパティへのアクセスを許可しない場合。
      NullPointerException - keynullである場合。
      IllegalArgumentException - keyが空である場合。
      導入されたバージョン:
      1.5
      関連項目:
    • getenv

      public static String getenv(String name)
      指定された環境変数の値を取得します。 環境変数は、システム固有の外部にある名前付きの値です。

      セキュリティ・マネージャが存在する場合は、その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 - namenullである場合
      SecurityException - セキュリティ・マネージャが存在し、そのcheckPermissionメソッドが環境変数nameへのアクセスを許可しない場合
      関連項目:
    • getenv

      public static Map<String,String> 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 - namenullの場合。
      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 - namenullまたはbundlenullの場合。
      IllegalCallerException - スタックにJava呼び出し側フレームがない場合。
      導入されたバージョン:
      9
    • exit

      public static void exit(int status)
      Java Virtual Machineの「停止シーケンス」を開始します。 このメソッドは、常に無期限にブロックします。 引数はステータス・コードとして作用します。通例、ゼロ以外のステータス・コードは異常終了を示します。

      このメソッドは、クラスRuntimeexitメソッドを呼び出します。 このメソッドは通常は復帰しません。

      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 - filenamenullである場合
      関連項目:
    • 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 - libnamenullである場合
      関連項目:
    • mapLibraryName

      public static String mapLibraryName(String libname)
      ライブラリ名を、ネイティブ・ライブラリを表すプラットフォーム依存の文字列にマッピングします。
      パラメータ:
      libname - ライブラリの名前。
      戻り値:
      プラットフォーム依存のネイティブ・ライブラリ名。
      例外:
      NullPointerException - libnamenullである場合
      導入されたバージョン:
      1.2
      関連項目: