「java.lang.System」は、Javaのシステム関係のクラスです。全てのフィールドとメソッドがstaticeで、インスタンスを作ることはできません。
java.lang.Systemには、「in(標準入力)」「out(標準出力)」「err(標準エラー出力)」の3つのフィールドがあります。
System.inは、コンソールからの入力に使われます。
BufferedReader reader = new BufferedReader( new InputStreamReader(System.in)); String line = reader.readLine();
System.outは、コンソールへの出力に使われます。
System.out.println("文字列");
System.errもコンソールへの出力に使われますが、エラーとして出力されます。Eclipseでは赤字で出力されます。
System.err.println("エラー");
java.lang.Systemには、様々なシステム周りのメソッドが用意されています。そのメソッドを紹介します。
// 配列のコピー(コピー元配列、コポー開始位置、 // コピー先配列、書き込み開始位置、書き込み長さ) public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length) // ガベージコレクタを実行 public static void gc() // 1970年1月1日午前0時からの経過ミリ秒を取得 public static long currentTimeMillis() // ナノ秒単位で時間を取得(経過時間計測でのみ使用可能) public static long nanoTime() // Java仮想マシンを終了(引数が0以外は異常終了を示す) public static void exit(int status) // nameで指定された環境変数の値を取得 public static String getenv(String name) // keyで指定されたシステムプロパティの値を取得 public static String getProperty(String key)
「環境変数」は、OS環境などの情報です。
// WindowsのPATHを出力 System.out.println(System.getenv("PATH")); // 環境変数の一覧を出力 System.out.println( System.getenv().toString().replaceAll(", ", "\n") );
「システムプロパティ」は、Java仮想マシンや実行時の状態などの情報です。
// Javaアプリケーションのカレントディレクトリを出力 System.out.println(System.getProperty("user.dir")); // システムプロパティの一覧を出力 System.out.println( System.getProperties().toString().replaceAll(", ", "\n") );