![]() ![]() ![]() ![]() |
目次 |
しばしば、プログラムはプロパティ、標準入出力ストリームあるいは現在の時間のようなシステム資源へのアクセスを必要とする。 プログラムは現在の実行環境から直接これらの資源を使用することができるが、作成された環境で実行することが可能なだけである。 新しいの環境でプログラムを実行させたいときは、コードのシステムに依存するセクションを書き換えて、毎回プログラムを「移植しな」ければならない。
System クラス(java.lang パッケージのメンバ)により実装されているシステムに依存しないプログラム作成インタフェースを通じて、ユーザのプログラムがシステム資源を使用することより、Java 開発環境はこの問題を解決している。
次のダイアグラムから見ることができるように、 System クラスにより Java システム固有の部分は意識せずにプログラムはシステム資源を使用することができる。
この入門書の他のレッスン見れば、すでに System クラスの標準出力がテキストを表示するためにいくつかの例で使用しているのを目にしているはずである。 System クラスを通して使用可能な他のシステム資源には、以下が含まれる。
- 標準入出力とエラーストリーム
- システムプロパティ
- ガベージコレクション
- 動的ライブラリのローディング
- 配列のコピー、現在の時刻の取得、実行環境の終了、セキュリティマネージャの使用を含むその他
System クラスの使用
System クラスのメソッドと変数のすべてがクラスメソッドとクラス変数である。 それを使用するためには System クラスをインスタンス化しなくてもよい。System クラスを直接参照することで System クラスのメソッドと変数を使用する。
標準入出力ストリーム
System クラスからもっともよく使用される項目は、テキストの読み込みや書き込みに使用されるストリームである。 System クラスは、テキストを読み込む標準入力ストリームを一つ、およびテキストを書き込む標準出力と標準エラーストリームの2つのストリームを提供する。
System プロパティ
プロパティは、Java プログラムが実行中に種々の属性あるいはパラメータを設定するためのキーと値のペアである。 Java 環境自身は、現在の環境についての情報を含むシステムプロパティのセットを維持する。 System クラスを通してシステムプロパティにアクセスすることができる。
終了とガベージコレクションの強制
Java では、メモリを使っている時、それをを解放しなくてもよい。 ガベージコレクタは、非同期にバックグラウンドで実行された未参照のオブジェクトをクリーンアップする。しかし、ガベージコレクタにシステムの gc() メソッドを使用して実行を強制することができる。 同様に、実行時システムに System クラスの runFinalization() メソッドを使用して、オブジェクトの終了を強制することができる。
動的ライブラリのローディング
Java では、アプリケーションは System クラスの2つのメソッドのうち1つを使用して、動的なライブラリをロードすることができる。
その他のシステムメソッド
System クラスには、ミリ秒での現在の時刻の取得、インタプリタの終了、配列のコピー、およびセキュリティマネージャの動作などができるいくつかのメソッドが含まれる。
システムに依存する資源の使用
ほとんどのシステムプログラミングに必要なものは、 System クラスが提供するプログラム作成インタフェースを通して用意されている。しかしまれなケースで、プログラムが System クラスのシステムに依存しないインタフェースを使用せず、実行環境から直接システム資源を使用しなくてはならないことがある。Java 環境は、直接システム資源にアクセスするために使用することができる現在の実行環境である Runtime オブジェクト(java.lang パッケージの別メンバ)を提供する。
注釈: Runtime オブジェクトへ直接アクセスすることにより、プログラムを異なるシステムで実行できなくなる可能性がある。特別な状況でのみこれを行うべきである。
![]() ![]() ![]() ![]() |
目次 |