Systemクラスは仮想マシンをコントロールするための
インターフェイスを提供するクラスです。
あるいは仮想マシンそのものと考えもかまわないでしょう。
このため、Systemクラスは新しいオブジェクトを生成したりはしません。
フィールドもメソッドもすべて staticです。
まず、標準入出力は staticで public なフィールドとして in, out, err の3つが用意されています。それぞれ、 標準入力、標準出力、標準エラー出力に対応します。 in は java.io.Inputstream, out と err は java.io.Printstream クラス のオブジェクトです。 JavaのアプリケーションはウィンドウベースのGUIを利用する場合が多いので、 これらのフィールドはむしろデバッグなどのために利用されます。
時刻の情報の取得は currentTimeMillis()メソッドによって行えます。 ただし、時刻や日付の情報は java.util.Date や java.util.Calendar クラスに よっても知ることができます。また、イベントの発生時刻などは、イベント情報 を伝えるクラスのオブジェクトからも取り出せます。 また、処理の時間調整は Threadクラスの sleep()メソッドを使うのが便利でしょう。
環境の情報を手に入れるには、getenv()メソッドもしくは getProperty()メソッドを 用います。ただし、getenv()メソッドは古いアプリケーションとの互換性のために 残されている機能で、現在では getProperty()を使うようにしてください。 getProperty()はあらかじめ予約されているキーとなるストリングを指定し、 それに対応するシステムの情報を String型のオブジェクトとして返します。
import java.util.Properties;
public class ShowEnvironment {
public static void main( String argv[] ){
Properties prps = System.getProperties();
String classpath = prps.getProperty( "java.class.path" );
String osname = prps.getProperty( "os.name" );
System.out.println("CLASSPATH is " + classpath);
System.out.println("OS NAME is " + osname);
}
}
その他に、Systemクラスには VMを直接コントロールするためのメソッドが
いくつか用意されています。これらの多くは通常のアプリケーションでは
用いられませんが、次の2つは知っておいた方がいいでしょう。