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

クラスSystem


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

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

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

      すべてのメソッド 静的メソッド 具象メソッド 
      修飾子と型 メソッド 説明
      static void arraycopy​(Object src, int srcPos, Object dest, int destPos, int length)
      指定位置で開始する指定ソース配列から、転送先配列の指定位置に配列をコピーします。
      static String clearProperty​(String key)
      指定されたキーによって示されたシステム・プロパティを削除します。
      static Console console()
      現在のJava仮想マシンに関連した一意のConsoleオブジェクトがある場合に、それを返します。
      static long currentTimeMillis()
      ミリ秒で表される現在の時間を返します。
      static void exit​(int status)
      現在実行しているJava仮想マシンを終了します。
      static void gc()
      ガベージ・コレクタを実行します。
      static Map<String,​String> getenv()
      現在のシステム環境の変更できない文字列マップのビューを返します。
      static String getenv​(String name)
      指定された環境変数の値を取得します。
      static System.Logger getLogger​(String name)
      呼び出し元が使用するLoggerのインスタンスを返します。
      static System.Logger getLogger​(String name, ResourceBundle bundle)
      呼び出し側が使用するLoggerのローカライズ可能なインスタンスを返します。
      static Properties getProperties()
      現在のシステム・プロパティを決定します。
      static String getProperty​(String key)
      指定されたキーによって示されるシステム・プロパティを取得します。
      static String getProperty​(String key, String def)
      指定されたキーによって示されるシステム・プロパティを取得します。
      static SecurityManager getSecurityManager()
      システム・セキュリティ・インタフェースを取得します。
      static int identityHashCode​(Object x)
      指定されたオブジェクトのクラスがhashCode()をオーバーライドしているかどうかに関係なく、デフォルトのhashCode()メソッドにより返されるものと同じ、指定されたオブジェクトのハッシュ・コードを返します。
      static Channel inheritedChannel()
      Java仮想マシンを作成したエンティティから継承されたチャネルを返します。
      static String lineSeparator()
      システムに依存する行区切り文字列を返します。
      static void load​(String filename)
      filename引数によって指定されたネイティブ・ライブラリをロードします。
      static void loadLibrary​(String libname)
      引数libnameによって指定されるネイティブ・ライブラリをロードします。
      static String mapLibraryName​(String libname)
      ライブラリ名を、ネイティブ・ライブラリを表すプラットフォーム依存の文字列にマッピングします。
      static long nanoTime()
      実行中のJava仮想マシンの高精度時間ソースの現在値を、ナノ秒の単位で返します。
      static void runFinalization()
      ファイナライズを保留しているオブジェクトのファイナライズ・メソッドを実行します。
      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 setSecurityManager​(SecurityManager s)
      システム・セキュリティを設定します。
    • フィールドの詳細

      • in

        public static final InputStream in
        「標準」入力ストリームです。 このストリームはすでに開いていて、入力データの供給が可能です。 通常、このストリームはキーボード入力、またはホスト環境やユーザーによって指定されるその他の入力ソースと一致しています。
      • err

        public static final PrintStream err
        「標準」エラー出力ストリームです。 このストリームはすでに開いていて、出力データの受け取りが可能です。

        通常、このストリームはディスプレイ出力、またはホスト環境やユーザーによって指定される出力先の出力と一致します。 主な出力ストリームである変数out値が、一般的に継続的には監視されていないファイルまたはその他の転送先にリダイレクトしている場合でも、ユーザーに注意を促すためのエラー・メッセージまたはその他の情報を表示するために、通例この出力ストリームが使用されます。「標準」入力ストリームを割り当てし直します。

    • メソッドの詳細

      • setIn

        public static void setIn​(InputStream in)
        「標準」入力ストリームを割り当てし直します。 セキュリティ・マネージャが存在する場合は、標準入力ストリームを割り当てし直してよいかどうかを確認するために、RuntimePermission("setIO")アクセス権を使ってcheckPermissionメソッドが呼び出されます。
        パラメータ:
        in - 新しい標準入力ストリーム。
        例外:
        SecurityException - セキュリティ・マネージャが存在し、そのcheckPermissionメソッドが標準入力ストリームの再割り当てを許可しない場合。
        導入されたバージョン:
        1.1
        関連項目:
        SecurityManager.checkPermission(java.security.Permission), RuntimePermission
      • setOut

        public static void setOut​(PrintStream out)
        「標準」出力ストリームを割り当てし直します。 セキュリティ・マネージャが存在する場合は、標準出力ストリームを割り当てし直してよいかどうかを確認するために、RuntimePermission("setIO")アクセス権を使ってcheckPermissionメソッドが呼び出されます。
        パラメータ:
        out - 新しい標準出力ストリーム
        例外:
        SecurityException - セキュリティ・マネージャが存在し、そのcheckPermissionメソッドが標準出力ストリームの再割り当てを許可しない場合。
        導入されたバージョン:
        1.1
        関連項目:
        SecurityManager.checkPermission(java.security.Permission), RuntimePermission
      • setErr

        public static void setErr​(PrintStream err)
        「標準」エラー出力ストリームを割り当てし直します。 セキュリティ・マネージャが存在する場合は、標準エラー出力ストリームを割り当てし直してよいかどうかを確認するために、RuntimePermission("setIO")アクセス権を使ってcheckPermissionメソッドが呼び出されます。
        パラメータ:
        err - 新しい標準エラー出力ストリーム。
        例外:
        SecurityException - セキュリティ・マネージャが存在し、そのcheckPermissionメソッドが標準エラー出力ストリームの再割り当てを許可しない場合。
        導入されたバージョン:
        1.1
        関連項目:
        SecurityManager.checkPermission(java.security.Permission), RuntimePermission
      • 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

        public static void setSecurityManager​(SecurityManager s)
        システム・セキュリティを設定します。 セキュリティ・マネージャがすでにインストールされている場合、このメソッドは、最初にRuntimePermission("setSecurityManager")アクセス権を使ってセキュリティ・マネージャのcheckPermissionメソッドを呼び出すことにより、既存のセキュリティ・マネージャを置換してもよいかどうかを確認します。 その結果、SecurityExceptionがスローされることがあります。

        そうでない場合は、引数を現在のセキュリティ・マネージャに設定します。 引数がnullであり、セキュリティ・マネージャが設定されていない場合、メソッドは何も行わずに復帰します。

        パラメータ:
        s - セキュリティ・マネージャ。
        例外:
        SecurityException - セキュリティ・マネージャがすでに設定されており、そのcheckPermissionメソッドがセキュリティ・マネージャの置換を許可しない場合。
        関連項目:
        getSecurityManager(), SecurityManager.checkPermission(java.security.Permission), RuntimePermission
      • getSecurityManager

        public static SecurityManager getSecurityManager()
        システム・セキュリティ・インタフェースを取得します。
        戻り値:
        セキュリティ・マネージャがすでに現在のアプリケーションに設定されている場合は、セキュリティ・マネージャ。そうでない場合はnull
        関連項目:
        setSecurityManager(java.lang.SecurityManager)
      • currentTimeMillis

        public static long currentTimeMillis()
        ミリ秒で表される現在の時間を返します。 戻り値の時間単位はミリ秒ですが、値の粒度は基本となるオペレーティング・システムによって異なり、単位がより大きくなる場合があります。 たとえば、多くのオペレーティング・システムでは、時間を10ミリ秒の単位で計測します。

        「コンピュータ時間」と協定世界時(UTC)との間に発生する微妙な相違については、クラスDateの説明を参照してください。

        戻り値:
        ミリ秒で測定した、現在時刻と協定世界時のUTC 1970年1月1日深夜零時との差。
        関連項目:
        Date
      • 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
        関連項目:
        Object.hashCode(), Objects.hashCode(Object)
      • getProperties

        public static Properties getProperties()
        現在のシステム・プロパティを決定します。 まず、セキュリティ・マネージャが存在する場合は、引数なしでそのcheckPropertiesAccessメソッドを呼び出します。 これはセキュリティ例外となる場合があります。

        getProperty(String)メソッドで使用される現在のシステム・プロパティのセットが、Propertiesオブジェクトとして返されます。 システム・プロパティの現在のセットがない場合、システム・プロパティのセットをまず作成してから初期化します。 このシステム・プロパティのセットには、常に次のキーの値が含まれます。

        プロパティ・キーと対応する値を示します
        キー 対応する値の説明
        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ベンダーのバージョン
        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仕様のメンテナンス・バージョンは、正の整数(オプション、下記参照)として解釈できます
        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 ユーザーの現在の作業ディレクトリ

        java.specification.maintenance.versionプロパティは、その構築時にこのランタイムによって実装された仕様が「メンテナンス・リリース」を下回った場合に定義されます。 定義されると、その値によってメンテナンス・リリースが識別されます。 最初のメンテナンス・リリースを示すには、このプロパティの値は"1"になり、2番目のメンテナンス・リリースを示すには、このプロパティの値は"2"、などになります。

        システム・プロパティ値内の複数のパスは、プラットフォーム固有のパス区切り文字で区切られます。

        セキュリティ・マネージャは、getPropertiesオペレーションを許可しない場合でも、getProperty(String)オペレーションを許可する場合があります。

        APIのノート:
        標準システム・プロパティを変更すると、特に指定されていないかぎり、予期しない結果が生じる可能性があります。 プロパティ値は、初期化中または最初の使用時にキャッシュできます。 getProperties()setProperties(Properties)setProperty(String, String)、またはclearProperty(String)を使用した初期化後の標準プロパティの設定は、期待した効果がないかもしれません。
        実装上のノート:
        標準システム・プロパティに加えて、システム・プロパティには次のキーが含まれます:
        プロパティ・キーと対応する値を示します
        キー 対応する値の説明
        jdk.module.path アプリケーション・モジュールのパス
        jdk.module.upgrade.path アップグレード・モジュールのパス
        jdk.module.main 初期/メイン・モジュールのモジュール名
        jdk.module.main.class 初期モジュールのメイン・クラス名
        戻り値:
        システム・プロパティ
        例外:
        SecurityException - セキュリティ・マネージャが存在し、セキュリティ・マネージャのcheckPropertiesAccessメソッドがシステム・プロパティへのアクセスを許可しない場合。
        関連項目:
        setProperties(java.util.Properties), SecurityException, SecurityManager.checkPropertiesAccess(), Properties
      • 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メソッドがシステム・プロパティへのアクセスを許可しない場合。
        関連項目:
        getProperties(), Properties, SecurityException, SecurityManager.checkPropertiesAccess()
      • getProperty

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

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

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

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

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

        パラメータ:
        key - システム・プロパティの名前。
        def - デフォルト値。
        戻り値:
        システム・プロパティの文字列値。そのキーにプロパティがない場合はデフォルト値。
        例外:
        SecurityException - セキュリティ・マネージャが存在し、セキュリティ・マネージャのcheckPropertyAccessメソッドが指定されたシステム・プロパティへのアクセスを許可しない場合。
        NullPointerException - keynullである場合。
        IllegalArgumentException - keyが空である場合。
        関連項目:
        setProperty(java.lang.String, java.lang.String), SecurityManager.checkPropertyAccess(java.lang.String), getProperties()
      • 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
        関連項目:
        getProperty(java.lang.String), getProperty(java.lang.String), getProperty(java.lang.String, java.lang.String), PropertyPermission, SecurityManager.checkPermission(java.security.Permission)
      • 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
        関連項目:
        getProperty(java.lang.String), setProperty(java.lang.String, java.lang.String), Properties, SecurityException, SecurityManager.checkPropertiesAccess()
      • 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(), ProcessBuilder.environment()
      • 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
        関連項目:
        getenv(String), ProcessBuilder.environment()
      • 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仮想マシンを終了します。 引数はステータス・コードとして作用します。通例、ゼロ以外のステータス・コードは異常終了を示します。

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

        System.exit(n)の呼出しの動作は、実際には次の呼び出しと同じです。

         Runtime.getRuntime().exit(n)
         

        パラメータ:
        status - 終了のステータス。
        例外:
        SecurityException - セキュリティ・マネージャが存在し、そのcheckExitメソッドが、指定されたステータスでの終了を許可しない場合。
        関連項目:
        Runtime.exit(int)
      • gc

        public static void gc()
        ガベージ・コレクタを実行します。 gcメソッドの呼出しは、現在占有しているメモリーを再度迅速に利用するために、Java仮想マシンが使用しないオブジェクトのリサイクルを実行することを意味します。 メソッドの呼び出しから制御が戻るのは、Java仮想マシンが、破棄されたオブジェクトが占有していたスペースを最大限まで回復し終えたときです。

        System.gc()の呼出しの動作は、実際には次の呼び出しと同じです。

         Runtime.getRuntime().gc()
         

        関連項目:
        Runtime.gc()
      • runFinalization

        public static void runFinalization()
        ファイナライズを保留しているオブジェクトのファイナライズ・メソッドを実行します。 このメソッドを呼び出すと、Java仮想マシンは、破棄されたにもかかわらずfinalizeメソッドが実行されていないオブジェクトのfinalizeメソッドを実行しようとします。 メソッドの呼び出しから制御が戻るのは、Java仮想マシンが、すべての未処理のファイナライズを最大限まで完了し終えたときです。

        System.runFinalization()の呼出しの動作は、実際には次の呼び出しと同じです。

         Runtime.getRuntime().runFinalization()
         

        関連項目:
        Runtime.runFinalization()
      • 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である場合
        関連項目:
        Runtime.load(java.lang.String), SecurityManager.checkLink(java.lang.String)
      • 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である場合
        関連項目:
        Runtime.loadLibrary(java.lang.String), SecurityManager.checkLink(java.lang.String)
      • mapLibraryName

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