|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
java.lang.Objectjava.lang.System
public final class System
System クラスには有用なクラスフィールドおよびメソッドがあります。インスタンス化することはできません。
System クラスによって得られる機能には、標準入力、標準出力、およびエラー出力ストリーム、外部的に定義されたプロパティおよび環境変数へのアクセス、ファイルおよびライブラリのローディング方法、配列の一部をすばやくコピーするユーティリティメソッドがあります。
| フィールドの概要 | |
|---|---|
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 long |
currentTimeMillis()
現在の時間をミリ秒で返します。 |
static void |
exit(int status)
現在実行している Java 仮想マシンを終了します。 |
static void |
gc()
ガベージコレクタを実行します。 |
static Map<String,String> |
getenv()
現在のシステム環境の変更できない文字列マップのビューを返します。 |
static String |
getenv(String name)
指定された環境変数の値を取得します。 |
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 void |
load(String filename)
指定されたファイル名を持つコードファイルを、ダイナミックライブラリとしてローカルファイルシステムからロードします。 |
static void |
loadLibrary(String libname)
引数 libname によって指定されるシステムライブラリをロードします。 |
static String |
mapLibraryName(String libname)
ライブラリ名を、ネイティブライブラリを表すプラットフォーム依存の文字列にマッピングします。 |
static long |
nanoTime()
利用可能でもっとも正確なシステムタイマーの現在の値をナノ秒単位で返します。 |
static void |
runFinalization()
ファイナライズを保留しているオブジェクトのファイナライズメソッドを実行します。 |
static void |
runFinalizersOnExit(boolean value)
推奨されていません。 このメソッドは本質的に安全ではありません。ほかのスレッドが同時にそれらのオブジェクトを操作しているときに、生存中のオブジェクトに対してファイナライザが呼び出され、これにより、エラー動作またはデッドロックが発生します。 |
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)
システムセキュリティを設定します。 |
| クラス java.lang.Object から継承されたメソッド |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| フィールドの詳細 |
|---|
public static final InputStream in
public static final PrintStream out
単純なスタンドアロンの Java アプリケーションにおいて、出力データの行を書き込む一般的な方法は以下のとおりです。
System.out.println(data)
PrintStream クラスの println メソッドを参照してください。
PrintStream.println(),
PrintStream.println(boolean),
PrintStream.println(char),
PrintStream.println(char[]),
PrintStream.println(double),
PrintStream.println(float),
PrintStream.println(int),
PrintStream.println(long),
PrintStream.println(java.lang.Object),
PrintStream.println(java.lang.String)public static final PrintStream err
通常、このストリームはディスプレイ出力、またはホスト環境やユーザによって指定される出力先の出力と一致します。主な出力ストリームである変数 out 値が、一般的に継続的には監視されていないファイルまたはその他の転送先にリダイレクトしている場合でも、ユーザに注意を促すためのエラーメッセージまたはその他の情報を表示するために、通例この出力ストリームが使用されます。
| メソッドの詳細 |
|---|
public static void setIn(InputStream in)
セキュリティマネージャが存在する場合は、標準入力ストリームを割り当てし直してよいかどうかを確認するために、RuntimePermission("setIO") アクセス権を使って checkPermission メソッドが呼び出されます。
in - 新しい標準入力ストリーム
SecurityException - セキュリティマネージャが存在し、セキュリティマネージャの checkPermission メソッドが標準入力ストリームの再割り当てを許可しない場合SecurityManager.checkPermission(java.security.Permission),
RuntimePermissionpublic static void setOut(PrintStream out)
セキュリティマネージャが存在する場合は、標準出力ストリームを割り当てし直してよいかどうかを確認するために、RuntimePermission("setIO") アクセス権を使って checkPermission メソッドが呼び出されます。
out - 新しい標準出力ストリーム
SecurityException - セキュリティマネージャが存在し、セキュリティマネージャの checkPermission メソッドが標準出力ストリームの再割り当てを許可しない場合SecurityManager.checkPermission(java.security.Permission),
RuntimePermissionpublic static void setErr(PrintStream err)
セキュリティマネージャが存在する場合は、標準エラー出力ストリームを割り当てし直してよいかどうかを確認するために、RuntimePermission("setIO") アクセス権を使って checkPermission メソッドが呼び出されます。
err - 新しい標準エラー出力ストリーム
SecurityException - セキュリティマネージャが存在し、セキュリティマネージャの checkPermission メソッドが標準エラー出力ストリームの再割り当てを許可しない場合SecurityManager.checkPermission(java.security.Permission),
RuntimePermission
public static Channel inheritedChannel()
throws IOException
このメソッドは、システム全体のデフォルトの SelectorProvider オブジェクトの inheritedChannel メソッドを呼び出すことによって取得したチャンネルを返します。
このメソッドは、inheritedChannel で定義されているネットワーク指向のチャネルに加えて、将来ほかの種類のチャネルを返す可能性があります。
IOException - 入出力エラーが発生した場合
SecurityException - セキュリティマネージャがインストールされていて、チャネルへのアクセスが許可されていない場合public static void setSecurityManager(SecurityManager s)
セキュリティマネージャがすでにインストールされている場合、このメソッドは、最初に RuntimePermission("setSecurityManager") アクセス権を使ってセキュリティマネージャの checkPermission メソッドを呼び出すことにより、既存のセキュリティマネージャを置換してもよいかどうかを確認します。この結果、SecurityException がスローされることがあります。
そうでない場合は、引数を現在のセキュリティマネージャに設定します。引数が null であり、セキュリティマネージャが設定されていない場合、メソッドは何も行わずに復帰します。
s - セキュリティマネージャ
SecurityException - セキュリティマネージャがすでに設定されており、セキュリティマネージャの checkPermission メソッドがセキュリティマネージャの置換を許可しない場合getSecurityManager(),
SecurityManager.checkPermission(java.security.Permission),
RuntimePermissionpublic static SecurityManager getSecurityManager()
nullsetSecurityManager(java.lang.SecurityManager)public static long currentTimeMillis()
「コンピュータ時間」と協定世界時 (UTC) との間に発生する微妙な相違については、クラス Date の説明を参照してください。
Datepublic static long nanoTime()
このメソッドは、経過時間を測定するためだけに使用できます。システムのほかの概念や壁時計の時刻に関連していません。返される値は、ある決まった任意の時刻 (将来の時間、負の値もあり得る) からのナノ秒単位の時間を表します。このメソッドは、ナノ秒単位の精度を提供しますが、必ずしもナノ秒の正確度ではありません。どの程度値が変化するかは保証されません。約 292 年 (263 ナノ秒 ) を超える連続した呼び出しの差異では、数値のオーバーフローにより経過時間が正しく計算されません。
たとえば、一部のコードで実行にかかる時間を測定するには、次のようになります。
long startTime = System.nanoTime(); // ... the code being measured ... long estimatedTime = System.nanoTime() - startTime;
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 にコピーします。
dest が null の場合は、NullPointerException がスローされます。
src が null の場合は、NullPointerException がスローされ、転送先配列は変更されません。
以下のどれかに当てはまる場合は、ArrayStoreException をスローし、転送先を修正しません。
src が、配列でないオブジェクトであるdest が、配列でないオブジェクトであるsrc および引数 dest が、要素の種類が異なるプリミティブ型の配列であるsrc がプリミティブな要素型を持つ配列であり、引数 dest が参照要素型を持つ配列であるsrc が参照要素型を持つ配列であり、引数 dest がプリミティブな要素型を持つ配列である
そうでない場合、以下のどれかに当てはまれば、IndexOutOfBoundsException をスローし、転送先を修正しません。
srcPos が負の値であるdestPos が負の値であるlength が負の値であるsrcPos+length がソース配列の長さ src.length より大きいdestPos+length が転送先配列の長さ dest.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 - src または dest が null の場合public static int identityHashCode(Object x)
x - ハッシュコードが計算されるオブジェクト
public static Properties getProperties()
まず、セキュリティマネージャが存在する場合は、引数なしでメソッド checkPropertiesAccess を呼び出します。これはセキュリティ例外となる場合があります。
getProperty(String) メソッドによって、現在使用しているシステムプロパティのセットが Properties オブジェクトとして返されます。現在のシステムプロパティのセットがない場合は、システムプロパティのセットを作成したあとで初期化します。このシステムプロパティのセットには、必ず以下のキーに対応する値が含まれます。
| キー | 対応する値の説明 |
|---|---|
java.version | Java Runtime Environment のバージョン |
java.vendor | Java Runtime Environment のベンダー |
java.vendor.url | Java ベンダーの URL |
java.home | Java のインストール先ディレクトリ |
java.vm.specification.version | Java 仮想マシンの仕様バージョン |
java.vm.specification.vendor | Java 仮想マシンの仕様ベンダー |
java.vm.specification.name | Java 仮想マシンの仕様名 |
java.vm.version | Java 仮想マシンの実装バージョン |
java.vm.vendor | Java 仮想マシンの実装ベンダー |
java.vm.name | Java 仮想マシンの実装名 |
java.specification.version | Java Runtime Environment の仕様バージョン |
java.specification.vendor | Java Runtime Environment の仕様のベンダー |
java.specification.name | Java Runtime Environment の仕様名 |
java.class.version | Java クラスの形式のバージョン番号 |
java.class.path | Java クラスパス |
java.library.path | ライブラリのロード時に検索するパスのリスト |
java.io.tmpdir | デフォルト一時ファイルのパス |
java.compiler | 使用する JIT コンパイラの名前 |
java.ext.dirs | 拡張ディレクトリのパス |
os.name | オペレーティングシステム名 |
os.arch | オペレーティングシステムのアーキテクチャ |
os.version | オペレーティングシステムのバージョン |
file.separator | ファイル区切り文字 (UNIX では「/」) |
path.separator | パス区切り文字 (UNIX では「:」) |
line.separator | 行区切り文字 (UNIX では「\n」) |
user.name | ユーザのアカウント名 |
user.home | ユーザのホームディレクトリ |
user.dir | ユーザの現在の作業ディレクトリ |
システムプロパティ値内の複数のパスは、プラットフォーム固有のパス区切り文字で区切られます。
セキュリティマネージャは、getProperties オペレーションを許可しない場合でも、getProperty(String) オペレーションを許可する場合があります。
SecurityException - セキュリティマネージャが存在し、セキュリティマネージャの checkPropertiesAccess メソッドがシステムプロパティへのアクセスを許可しない場合setProperties(java.util.Properties),
SecurityException,
SecurityManager.checkPropertiesAccess(),
Propertiespublic static void setProperties(Properties props)
Properties に設定します。
まず、セキュリティマネージャが存在する場合は、引数なしでメソッド checkPropertiesAccess を呼び出します。これはセキュリティ例外となる場合があります。
引数は、メソッド getProperty(String) により、使用するシステムプロパティの現在のセットとなります。引数が null の場合、システムプロパティの現在のセットはそのままです。
props - 新しいシステムプロパティ
SecurityException - セキュリティマネージャが存在し、セキュリティマネージャの checkPropertiesAccess メソッドがシステムプロパティへのアクセスを許可しない場合getProperties(),
Properties,
SecurityException,
SecurityManager.checkPropertiesAccess()public static String getProperty(String key)
セキュリティマネージャが存在する場合は、キーを引数として渡して checkPropertyAccess メソッドを呼び出します。その結果、SecurityException がスローされることがあります。
システムプロパティの現在のセットがない場合、システムプロパティのセットをまず作成し、getProperties メソッドと同じ方法で初期化します。
key - システムプロパティの名前
null
SecurityException - セキュリティマネージャが存在し、セキュリティマネージャの checkPropertiesAccess メソッドが、指定されたシステムプロパティへのアクセスを許可しない場合
NullPointerException - key が null の場合
IllegalArgumentException - key が空の場合setProperty(java.lang.String, java.lang.String),
SecurityException,
SecurityManager.checkPropertyAccess(java.lang.String),
getProperties()
public static String getProperty(String key,
String def)
セキュリティマネージャが存在する場合は、key を引数として渡して checkPropertyAccess メソッドを呼び出します。
システムプロパティの現在のセットがない場合、システムプロパティのセットをまず作成し、getProperties メソッドと同じ方法で初期化します。
key - システムプロパティの名前def - デフォルト値
SecurityException - セキュリティマネージャが存在し、セキュリティマネージャの checkPropertiesAccess メソッドが、指定されたシステムプロパティへのアクセスを許可しない場合
NullPointerException - key が null の場合
IllegalArgumentException - key が空の場合setProperty(java.lang.String, java.lang.String),
SecurityManager.checkPropertyAccess(java.lang.String),
getProperties()
public static String setProperty(String key,
String value)
セキュリティマネージャが存在する場合は、PropertyPermission(key, "write") アクセス権を使って SecurityManager.checkPermission メソッドが呼び出されます。この結果、SecurityException がスローされることがあります。例外がスローされなかった場合は、指定されたプロパティが指定された値に設定されます。
key - システムプロパティの名前value - システムプロパティの値
null
SecurityException - セキュリティマネージャが存在し、セキュリティマネージャの checkPermission メソッドが、指定されたプロパティの設定を許可しない場合
NullPointerException - key または value が null の場合
IllegalArgumentException - key が空の場合getProperty(java.lang.String),
getProperty(java.lang.String),
getProperty(java.lang.String, java.lang.String),
PropertyPermission,
SecurityManager.checkPermission(java.security.Permission)public static String clearProperty(String key)
セキュリティマネージャが存在する場合は、PropertyPermission(key, "write") アクセス権を使って SecurityManager.checkPermission メソッドが呼び出されます。この結果、SecurityException がスローされることがあります。例外がスローされなかった場合は、指定されたプロパティは削除されます。
key - 削除されるシステムプロパティの名前
null
SecurityException - セキュリティマネージャが存在し、セキュリティマネージャの checkPropertiesAccess メソッドが、指定されたシステムプロパティへのアクセスを許可しない場合
NullPointerException - key が null の場合
IllegalArgumentException - key が空の場合getProperty(java.lang.String),
setProperty(java.lang.String, java.lang.String),
Properties,
SecurityException,
SecurityManager.checkPropertiesAccess()public static String getenv(String name)
セキュリティマネージャが存在する場合は、 アクセス権を使って RuntimePermission("getenv."+name)checkPermission メソッドが呼び出されます。この結果、SecurityException がスローされることがあります。例外がスローされない場合、変数 name の値が返されます。
「システムプロパティ」と「環境変数」は、名前と値との間で概念的にマップされています。両方のメカニズムを使って、ユーザー定義情報を Java プロセスに渡すことができます。環境変数は、よりグローバルな効果を及ぼします。これは、プロセスにより定義されたすべての子孫にとって環境変数が直接の Java サブプロセスであるばかりでなく、可視であるからです。これらは、異なるオペレーティングシステム上で微妙に異なるセマンティクス (大文字と小文字を区別しないなど) を持つことができます。これらの理由から、環境変数は意図しない副作用を持つ可能性が高くなります。可能な場合は、システムプロパティを使用することがもっとも適切です。環境変数は、グローバルな効果が必要なときや、外部システムインタフェースが環境変数 ( UNIX システムでは、
PATH など) を必要とするときに使う必要があります。
name のアルファベットの大文字と小文字は区別されますが、Microsoft Windows システムでは一般に区別されません。たとえば、System.getenv("FOO").equals(System.getenv("foo")) という表現は Microsoft Windows では true です。
name - 環境変数の名前
null
NullPointerException - name が null の場合
SecurityException - セキュリティマネージャが存在し、checkPermission メソッドが環境変数 name へのアクセスを許可しないときgetenv(),
ProcessBuilder.environment()
public static Map<String,String> getenv()
システムが環境変数をサポートしていない場合は、空のマップが返されます。
返されたマップは、null のキーや値を含みません。null のキーや値があるかどうかクエリーを実行すると、NullPointerException がスローされます。String 型ではないキーや値があるかどうかクエリーを実行すると、ClassCastException がスローされます。
返されたマップとそのコレクションビューは、Object.equals(java.lang.Object) メソッドと Object.hashCode() メソッドの汎用規約に従わない可能性があります。
返されたマップは、一般にすべてのプラットフォームで大文字と小文字を区別します。
セキュリティマネージャが存在する場合は、 アクセス権を使って RuntimePermission("getenv.*")checkPermission メソッドが呼び出されます。この結果、SecurityException がスローされることがあります。
Java サブプロセスに情報を渡す場合、一般的に環境変数よりもシステムプロパティが推奨されます。
SecurityException - セキュリティマネージャが存在し、checkPermission メソッドがプロセス環境へのアクセスを許可しないときgetenv(String),
ProcessBuilder.environment()public static void exit(int status)
このメソッドは Runtime クラスの exit メソッドを呼び出します。このメソッドは、正常に復帰することはありません。
System.exit(n) の呼び出しの動作は、実際には次の呼び出しと同じです。
Runtime.getRuntime().exit(n)
status - 終了のステータス
SecurityException - セキュリティマネージャが存在し、その checkExit メソッドが、指定されたステータスでの終了を許可しない場合Runtime.exit(int)public static void gc()
gc メソッドの呼び出しは、現在占有しているメモリを再度迅速に利用するために、Java 仮想マシンが使用しないオブジェクトのリサイクルを実行することを意味します。メソッドの呼び出しから制御が戻るのは、Java 仮想マシンが、破棄されたオブジェクトが占有していたスペースを最大限まで回復し終えたときです。
System.gc() の呼び出しの動作は、実際には次の呼び出しと同じです。
Runtime.getRuntime().gc()
Runtime.gc()public static void runFinalization()
このメソッドを呼び出すと、Java 仮想マシンが、破棄されていることがわかっていて finalize メソッドが実行されていないオブジェクトに対して finalize メソッドの実行が試行されます。メソッドの呼び出しから制御が戻るのは、Java 仮想マシンが、すべての未処理のファイナライズを最大限まで完了し終えたときです。
System.runFinalization() の呼び出しの動作は、実際には次の呼び出しと同じです。
Runtime.getRuntime().runFinalization()
Runtime.runFinalization()@Deprecated public static void runFinalizersOnExit(boolean value)
セキュリティマネージャが存在する場合は、確実に終了が許可されるように、最初に引数を 0 として checkExit メソッドが呼び出されます。この結果、SecurityException がスローされることがあります。
value - ファイナライズを有効にするか無効にするかを示す
SecurityException - セキュリティマネージャが存在し、セキュリティマネージャの checkExit メソッドが終了を許可しない場合Runtime.exit(int),
Runtime.gc(),
SecurityManager.checkExit(int)public static void load(String filename)
System.load(name) の呼び出しの動作は、実際には次の呼び出しと同じです。
Runtime.getRuntime().load(name)
filename - ロードするファイル
SecurityException - セキュリティマネージャが存在し、セキュリティマネージャの checkLink メソッドが、指定されたダイナミックライブラリのロードを許可しない場合
UnsatisfiedLinkError - ファイルが存在しない場合
NullPointerException - filename が null の場合Runtime.load(java.lang.String),
SecurityManager.checkLink(java.lang.String)public static void loadLibrary(String libname)
libname によって指定されるシステムライブラリをロードします。ライブラリ名が実際のシステムライブラリにマッピングされる方法は、システムによって異なります。
System.loadLibrary(name) の呼び出しの動作は、実際には次の呼び出しと同じです。
Runtime.getRuntime().loadLibrary(name)
libname - ライブラリの名前
SecurityException - セキュリティマネージャが存在し、セキュリティマネージャの checkLink メソッドが、指定されたダイナミックライブラリのロードを許可しない場合
UnsatisfiedLinkError - ライブラリが存在しない場合
NullPointerException - libname が null の場合Runtime.loadLibrary(java.lang.String),
SecurityManager.checkLink(java.lang.String)public static String mapLibraryName(String libname)
libname - ライブラリの名前
NullPointerException - libname が null の場合loadLibrary(java.lang.String),
ClassLoader.findLibrary(java.lang.String)
|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。