|
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)
,
RuntimePermission
public static void setOut(PrintStream out)
セキュリティマネージャが存在する場合は、標準出力ストリームを割り当てし直してよいかどうかを確認するために、RuntimePermission("setIO")
アクセス権を使って checkPermission
メソッドが呼び出されます。
out
- 新しい標準出力ストリーム
SecurityException
- セキュリティマネージャが存在し、セキュリティマネージャの checkPermission
メソッドが標準出力ストリームの再割り当てを許可しない場合SecurityManager.checkPermission(java.security.Permission)
,
RuntimePermission
public 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)
,
RuntimePermission
public static SecurityManager getSecurityManager()
null
setSecurityManager(java.lang.SecurityManager)
public static long currentTimeMillis()
「コンピュータ時間」と協定世界時 (UTC) との間に発生する微妙な相違については、クラス Date
の説明を参照してください。
Date
public 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()
,
Properties
public 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 も参照してください。