- java.lang.Object
-
- java.lang.System
-
public final class System extends Object
System
类包含几个有用的类字段和方法。 它不能被实例化。System
类提供的设施包括标准输入,标准输出和错误输出流; 访问外部定义的属性和环境变量; 一种加载文件和库的方法; 以及用于快速复制阵列的一部分的实用方法。- 从以下版本开始:
- 1.0
-
-
Nested Class Summary
Nested Classes Modifier and Type Class 描述 static interface
System.Logger
System.Logger
实例日志消息将路由到底层日志框架LoggerFinder
使用。static class
System.LoggerFinder
LoggerFinder
服务负责创建,管理和配置记录器到其使用的基础框架。
-
Field Summary
Fields Modifier and Type Field 描述 static PrintStream
err
“标准”错误输出流。static InputStream
in
“标准”输入流。static PrintStream
out
“标准”输出流。
-
方法摘要
所有方法 静态方法 具体的方法 弃用的方法 Modifier and Type 方法 描述 static void
arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
将指定源数组中的数组从指定位置复制到目标数组的指定位置。static String
clearProperty(String key)
删除指定键指定的系统属性。static Console
console()
返回与当前Java虚拟机相关联的唯一的Console
对象(如果有)。static long
currentTimeMillis()
返回当前时间(以毫秒为单位)。static void
exit(int status)
终止当前运行的Java虚拟机。static void
gc()
运行垃圾回收器。static Map<String,String>
getenv()
返回当前系统环境的不可修改的字符串映射视图。static String
getenv(String name)
获取指定环境变量的值。static System.Logger
getLogger(String name)
返回一个Logger
的调用者使用的实例。static System.Logger
getLogger(String name, ResourceBundle bundle)
返回一个本地化的实例Logger
,以供来电者使用。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 String
lineSeparator()
返回与系统相关的行分隔符字符串。static void
load(String filename)
加载由filename参数指定的本机库。static void
loadLibrary(String libname)
加载由libname
参数指定的本机库。static String
mapLibraryName(String libname)
将库名称映射到表示本地库的平台特定字符串。static long
nanoTime()
以纳秒为单位返回正在运行的Java虚拟机的高分辨率时间源的当前值。static void
runFinalization()
运行任何对象等待定稿的最终化方法。static void
runFinalizersOnExit(boolean value)
不推荐用于删除:此API元素将在以后的版本中被删除。这种方法本质上是不安全的。 它可能导致在活动对象上调用finalizer,而其他线程同时操作这些对象,导致不稳定的行为或死锁。 此方法在将来的Java SE版本中可能会被删除。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)
设置系统安全性。
-
-
-
字段详细信息
-
in
public static final InputStream in
“标准”输入流。 该流已经打开,准备提供输入数据。 通常,该流对应于键盘输入或由主机环境或用户指定的另一个输入源。
-
out
public static final PrintStream out
“标准”输出流。 此流已经打开并准备好接受输出数据。 通常,此流对应于显示输出或由主机环境或用户指定的另一个输出目标。对于简单的独立Java应用程序,编写一行输出数据的典型方法是:
System.out.println(data)
见
println
类方法PrintStream
。- 另请参见:
-
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)
-
err
public static final PrintStream err
“标准”错误输出流。 此流已经打开并准备好接受输出数据。通常,此流对应于显示输出或由主机环境或用户指定的另一个输出目标。 按照惯例,该输出流用于显示错误消息或其他信息,这些信息应该立即引起用户的注意,即使主要输出流(变量
out
的值)已被重定向到文件或其他目的地,即通常不会持续监控。
-
-
方法详细信息
-
setIn
public static void setIn(InputStream in)
重新分配“标准”输入流。首先,如果有一个安全管理器,它的
checkPermission
方法被调用一个RuntimePermission("setIO")
权限来查看是否可以重新分配“标准”输入流。- 参数
-
in
- 新的标准输入流。 - 异常
-
SecurityException
- 如果存在安全管理员,并且其checkPermission
方法不允许重新分配标准输入流。 - 从以下版本开始:
- 1.1
- 另请参见:
-
SecurityManager.checkPermission(java.security.Permission)
,RuntimePermission
-
setOut
public static void setOut(PrintStream out)
重新分配“标准”输出流。首先,如果有一个安全管理器,它的
checkPermission
方法被调用一个RuntimePermission("setIO")
权限,看看是否可以重新分配“标准”输出流。- 参数
-
out
- 新的标准输出流 - 异常
-
SecurityException
- 如果存在安全管理员,并且其checkPermission
方法不允许重新分配标准输出流。 - 从以下版本开始:
- 1.1
- 另请参见:
-
SecurityManager.checkPermission(java.security.Permission)
,RuntimePermission
-
setErr
public static void setErr(PrintStream err)
重新分配“标准”错误输出流。首先,如果有一个安全管理器,它的
checkPermission
方法被调用一个RuntimePermission("setIO")
权限来查看是否可以重新分配“标准”错误输出流。- 参数
-
err
- 新的标准错误输出流。 - 异常
-
SecurityException
- 如果存在安全管理员,并且其checkPermission
方法不允许重新分配标准错误输出流。 - 从以下版本开始:
- 1.1
- 另请参见:
-
SecurityManager.checkPermission(java.security.Permission)
,RuntimePermission
-
console
public static Console console()
返回与当前Java虚拟机关联的唯一的Console
对象(如果有)。- 结果
-
系统控制台(如有),否则为
null
。 - 从以下版本开始:
- 1.6
-
inheritedChannel
public static Channel inheritedChannel() throws IOException
返回从创建此Java虚拟机的实体继承的通道。此方法返回通过调用系统范围默认的
SelectorProvider
对象的inheritedChannel
方法获得的通道。除了
inheritedChannel
中描述的面向网络的通道之外 ,此方法可能会在将来返回其他类型的通道。- 结果
-
继承的渠道,如果有的话,否则
null
。 - 异常
-
IOException
- 如果发生I / O错误 -
SecurityException
- 如果存在安全管理员,并且不允许访问该通道。 - 从以下版本开始:
- 1.5
-
setSecurityManager
public static void setSecurityManager(SecurityManager s)
设置系统安全性。如果已经安装了安全管理器,则该方法首先使用
RuntimePermission("setSecurityManager")
权限调用安全管理器的checkPermission
方法,以确保替换现有安全管理器。 这可能会导致抛出一个SecurityException
。否则,该参数被建立为当前的安全管理器。 如果参数是
null
并且没有建立安全管理器,则不采取任何操作,并且该方法简单地返回。- 参数
-
s
- 安全管理员。 - 异常
-
SecurityException
- 如果安全管理器已经设置,并且其checkPermission
方法不允许替换它。 - 另请参见:
-
getSecurityManager()
,SecurityManager.checkPermission(java.security.Permission)
,RuntimePermission
-
getSecurityManager
public static SecurityManager getSecurityManager()
获取系统安全界面。- 结果
-
200新200新新旗新新新旗新新旗旗新新旗新新旗旗新新旗旗新新旗旗新新旗旗新新旗新新旗新新旗新新旗新新旗新新旗新新旗新新200新新旗新新200新新旗新新200新新旗新新旗新新款:
否则返回
null
。 - 另请参见:
-
setSecurityManager(java.lang.SecurityManager)
-
currentTimeMillis
public static long currentTimeMillis()
返回当前时间(以毫秒为单位)。 请注意,虽然返回值的时间单位为毫秒,但该值的粒度取决于底层操作系统,并且可能较大。 例如,许多操作系统以几十毫秒为单位测量时间。有关“计算机时间”和协调世界时间(UTC)之间可能出现的轻微差异的讨论,请参阅类别
Date
的说明。- 结果
- 在1970年1月1日UTC之间的当前时间和午夜之间的差异,以毫秒为单位。
- 另请参见:
-
Date
-
nanoTime
public static long nanoTime()
以纳秒为单位返回正在运行的Java虚拟机的高分辨率时间源的当前值。该方法只能用于测量经过时间,与系统或挂钟时间的任何其他概念无关。 返回的值表示纳秒,因为一些固定但任意的起始时间(可能在将来,所以值可能是负数)。 在Java虚拟机的实例中,该方法的所有调用都使用相同的来源; 其他虚拟机实例可能会使用不同的来源。
该方法提供纳秒精度,但不一定是纳秒分辨率(即,值的变化频率) - 除了分辨率至少与
currentTimeMillis()
相同,不作任何保证。跨越大约292年(2 63纳秒)的连续呼叫的差异将无法正确计算由于数字溢出所造成的时间。
仅当在Java虚拟机的同一实例中获得的两个此类值之间的差异被计算时,此方法返回的值才会变得有意义。
例如,测量代码执行多长时间:
long startTime = System.nanoTime(); // ... the code being measured ... long elapsedNanos = System.nanoTime() - startTime;
要比较经过的时间与超时时间,请使用
if (System.nanoTime() - startTime >= timeoutNanos) ...
if (System.nanoTime() >= startTime + timeoutNanos) ...
- 结果
- 运行Java虚拟机的高分辨率时间源的当前值,以纳秒为单位
- 从以下版本开始:
- 1.5
-
arraycopy
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
并且ArrayStoreException
目的地:-
src
参数是指不是数组的对象。 -
dest
参数是指不是数组的对象。 -
src
参数和dest
参数是指其组件类型是不同的基本类型的数组。 -
src
参数是指具有原始组件类型的数组,而dest
参数是指具有引用组件类型的数组。 -
src
参数是指具有引用组件类型的数组,而dest
参数是指具有原始组件类型的数组。
否则,如果满足以下条件之一,则抛出
IndexOutOfBoundsException
并且IndexOutOfBoundsException
目的地:-
srcPos
论点是否定的。 -
destPos
参数为负数。 -
length
论点是否定的。 -
srcPos+length
大于src.length
,源数组的长度。 -
destPos+length
大于dest.length
,目标数组的长度。
否则,如果来自位置
srcPos
至srcPos+length-1
的源数组的任何实际组件无法通过转换转换为目标数组的组件类型,则抛出ArrayStoreException
。 在这种情况下,令k是小于长度的最小非负整数,src[srcPos+
无法将src[srcPos+
k]
转换为目标数组的组件类型; 当抛出异常时,来自位置srcPos
至srcPos+
k-1
源阵列组件将已经被复制到目的地阵列位置destPos
至destPos+
k-1
并且目标阵列的其他位置将不被修改。 (由于限制已经列出,本段仅适用于两个数组都具有引用类型的组件类型的情况。)- 参数
-
src
- 源数组。 -
srcPos
- 源数组中的起始位置。 -
dest
- 目标数组。 -
destPos
- 目的地数据中的起始位置。 -
length
- 要复制的数组元素的数量。 - 异常
-
IndexOutOfBoundsException
- 如果复制将导致数据外部数据界限的访问。 -
ArrayStoreException
- 如果由于类型不匹配,src
数组中的元素无法存储到dest
数组中。 -
NullPointerException
- 如果src
或dest
是null
。
-
-
identityHashCode
public static int identityHashCode(Object x)
返回与默认方法hashCode()返回的给定对象相同的哈希码,无论给定对象的类是否覆盖了hashCode()。 空引用的哈希码为零。- 参数
-
x
- 要计算hashCode的对象 - 结果
- 的hashCode
- 从以下版本开始:
- 1.1
-
getProperties
public static Properties getProperties()
确定当前的系统属性。首先,如果有一个安全管理器,它的
checkPropertiesAccess
方法被调用没有参数。 这可能会导致安全例外。getProperty(String)
方法使用的当前系统属性集作为Properties
对象返回。 如果没有当前的系统属性集,则首先创建和初始化一组系统属性。 此组系统属性始终包含以下键的值:java.version
Java Runtime Environment version which may be interpreted as aRuntime.Version
java.vendor
Java Runtime Environment vendorjava.vendor.url
Java vendor URLjava.home
Java installation directoryjava.vm.specification.version
Java Virtual Machine specification version which may be interpreted as aRuntime.Version
java.vm.specification.vendor
Java Virtual Machine specification vendorjava.vm.specification.name
Java Virtual Machine specification namejava.vm.version
Java Virtual Machine implementation version which may be interpreted as aRuntime.Version
java.vm.vendor
Java Virtual Machine implementation vendorjava.vm.name
Java Virtual Machine implementation namejava.specification.version
Java Runtime Environment specification version which may be interpreted as aRuntime.Version
java.specification.vendor
Java Runtime Environment specification vendorjava.specification.name
Java Runtime Environment specification namejava.class.version
Java class format version numberjava.class.path
Java class pathjava.library.path
List of paths to search when loading librariesjava.io.tmpdir
Default temp file pathjava.compiler
Name of JIT compiler to useos.name
Operating system nameos.arch
Operating system architectureos.version
Operating system versionfile.separator
File separator ("/" on UNIX)path.separator
Path separator (":" on UNIX)line.separator
Line separator ("\n" on UNIX)user.name
User's account nameuser.home
User's home directoryuser.dir
User's current working directory系统属性值中的多个路径由平台的路径分隔符分隔。
请注意,即使安全管理员不允许
getProperties
操作,也可以选择允许getProperty(String)
操作。- Implementation Note:
-
除了标准系统属性之外,系统属性可能包括以下密钥:
Shows property keys and associated values Key Description of Associated Value
jdk.module.path
The application module pathjdk.module.upgrade.path
The upgrade module pathjdk.module.main
The module name of the initial/main modulejdk.module.main.class
The main class name of the initial module - 结果
- 系统属性
- 异常
-
SecurityException
- 如果安全管理器存在,并且其checkPropertiesAccess
方法不允许访问系统属性。 - 另请参见:
-
setProperties(java.util.Properties)
,SecurityException
,SecurityManager.checkPropertiesAccess()
,Properties
-
lineSeparator
public static String lineSeparator()
返回与系统相关的行分隔符字符串。 它总是返回相同的值 - 初始值为system propertyline.separator
。在UNIX系统上,它返回
"\n"
; 在Microsoft Windows系统上,它返回"\r\n"
。- 结果
- 系统相关的行分隔符串
- 从以下版本开始:
- 1.7
-
setProperties
public static void setProperties(Properties props)
将系统属性设置为Properties
参数。首先,如果有一个安全管理器,它的
checkPropertiesAccess
方法被调用没有参数。 这可能会导致安全例外。该参数成为
getProperty(String)
方法使用的当前系统属性集。 如果参数为null
,则系统属性的当前集合被遗忘。- 参数
-
props
- 新的系统属性。 - 异常
-
SecurityException
- 如果安全管理器存在,并且其checkPropertiesAccess
方法不允许访问系统属性。 - 另请参见:
-
getProperties()
,Properties
,SecurityException
,SecurityManager.checkPropertiesAccess()
-
getProperty
public static String getProperty(String key)
获取指定键指示的系统属性。首先,如果有一个安全管理器,它的
checkPropertyAccess
方法将以密钥作为参数来调用。 这可能会导致SecurityException。如果没有当前的系统属性集,则首先以与
getProperties
方法相同的方式创建和初始化一组系统属性。- 参数
-
key
- 系统属性的名称。 - 结果
-
系统属性的字符串值,如果没有该密钥的属性,
null
。 - 异常
-
SecurityException
- 如果安全管理器存在,并且其checkPropertyAccess
方法不允许访问指定的系统属性。 -
NullPointerException
- 如果key
是null
。 -
IllegalArgumentException
- 如果key
为空。 - 另请参见:
-
setProperty(java.lang.String, java.lang.String)
,SecurityException
,SecurityManager.checkPropertyAccess(java.lang.String)
,getProperties()
-
getProperty
public static String getProperty(String key, String def)
获取指定键指示的系统属性。首先,如果有一个安全管理器,它的
checkPropertyAccess
方法是以key
作为参数来调用的。如果没有当前的系统属性集,则首先以与
getProperties
方法相同的方式创建和初始化一组系统属性。- 参数
-
key
- 系统属性的名称。 -
def
- 默认值。 - 结果
- 系统属性的字符串值,如果没有该键的属性,则为默认值。
- 异常
-
SecurityException
- 如果存在安全管理员,并且其checkPropertyAccess
方法不允许访问指定的系统属性。 -
NullPointerException
- 如果key
是null
。 -
IllegalArgumentException
- 如果key
为空。 - 另请参见:
-
setProperty(java.lang.String, java.lang.String)
,SecurityManager.checkPropertyAccess(java.lang.String)
,getProperties()
-
setProperty
public static String setProperty(String key, String value)
设置由指定键指示的系统属性。首先,如果一个安全管理器存在,它的
SecurityManager.checkPermission
方法被调用一个PropertyPermission(key, "write")
权限。 这可能导致抛出SecurityException。 如果没有引发异常,则将指定的属性设置为给定值。- 参数
-
key
- 系统属性的名称。 -
value
- 系统属性的值。 - 结果
-
系统属性的前一个值,如果没有,
null
。 - 异常
-
SecurityException
- 如果安全管理器存在,并且其checkPermission
方法不允许设置指定的属性。 -
NullPointerException
- 如果key
或value
是null
。 -
IllegalArgumentException
- 如果key
为空。 - 从以下版本开始:
- 1.2
- 另请参见:
-
getProperty(java.lang.String)
,getProperty(java.lang.String)
,getProperty(java.lang.String, java.lang.String)
,PropertyPermission
,SecurityManager.checkPermission(java.security.Permission)
-
clearProperty
public static String clearProperty(String key)
删除指定键指定的系统属性。首先,如果一个安全管理器存在,它的
SecurityManager.checkPermission
方法被调用与一个PropertyPermission(key, "write")
权限。 这可能导致抛出SecurityException。 如果没有异常抛出,指定的属性将被删除。- 参数
-
key
- 要删除的系统属性的名称。 - 结果
-
系统属性的前一个字符串值,如果没有该键的属性,
null
。 - 异常
-
SecurityException
- 如果存在安全管理员,并且其checkPropertyAccess
方法不允许访问指定的系统属性。 -
NullPointerException
- 如果key
是null
。 -
IllegalArgumentException
- 如果key
为空。 - 从以下版本开始:
- 1.5
- 另请参见:
-
getProperty(java.lang.String)
,setProperty(java.lang.String, java.lang.String)
,Properties
,SecurityException
,SecurityManager.checkPropertiesAccess()
-
getenv
public static String getenv(String name)
获取指定环境变量的值。 环境变量是系统相关的外部命名值。如果存在安全管理员,则其
checkPermission
方法将被调用,具有
权限。 这可能会导致抛出RuntimePermission
("getenv."+name)SecurityException
。 如果不抛出异常,则返回变量name
的值。System properties and environment variables都是概念上的名称和值之间的映射。 这两种机制都可以用于将用户定义的信息传递给Java进程。 环境变量具有更全面的效果,因为它们对于定义它们的进程的所有后代都是可见的,而不仅仅是直接的Java子进程。 在不同的操作系统上,它们可能具有微妙的不同语义,例如不区分大小写。 由于这些原因,环境变量更有可能产生意想不到的副作用。 最好在可能的情况下使用系统属性。 当需要全局效果时,或外部系统接口需要环境变量(如
PATH
)时,应使用环境变量。在UNIX系统上,
name
的字母name
通常是重要的,而在Microsoft Windows系统上通常不是。 例如,表达式System.getenv("FOO").equals(System.getenv("foo"))
在Microsoft Windows上可能是真实的。- 参数
-
name
- 环境变量的名称 - 结果
-
变量的字符串值,如果变量未在系统环境中定义,
null
- 异常
-
NullPointerException
- 如果name
是null
-
SecurityException
- 如果存在安全管理员,并且其checkPermission
方法不允许访问环境变量name
- 另请参见:
-
getenv()
,ProcessBuilder.environment()
-
getenv
public static Map<String,String> getenv()
返回当前系统环境的不可修改的字符串映射视图。 环境是从名称到从父进程传递到子进程的值的系统相关映射。如果系统不支持环境变量,则返回空的地图。
返回的地图永远不会包含空值或值。 尝试查询空值或值的存在将抛出一个
NullPointerException
。 尝试查询是否存在不是String
型号的键或值将抛出一个ClassCastException
。返回的地图及其收藏意见可能不符合
Object.equals(java.lang.Object)
和Object.hashCode()
方法的一般合同。返回的地图通常在所有平台上都区分大小写。
如果存在安全管理员,则其
checkPermission
方法
权限进行调用。 这可能会导致抛出RuntimePermission
("getenv.*")SecurityException
。当传递信息到Java子进程时 ,通常比环境变量更喜欢system properties 。
- 结果
- 环境作为变量名称映射到值
- 异常
-
SecurityException
- 如果存在安全管理员,并且其checkPermission
方法不允许访问进程环境 - 从以下版本开始:
- 1.5
- 另请参见:
-
getenv(String)
,ProcessBuilder.environment()
-
getLogger
public static System.Logger getLogger(String name)
返回一个Logger
的调用者使用的实例。- API Note:
-
此方法可能会延迟调用
LoggerFinder.getLogger
方法来创建由日志后端提供的实际记录器,例如允许在系统初始化时间内获取记录器。 - 实现要求:
-
通过此方法返回的实例将通过调用
LoggerFinder.getLogger(name, module)
获得的记录器发送消息,其中module
是呼叫者的模块。 在箱子System.getLogger
从上下文其中在堆栈上没有呼叫者帧调用(例如,当从JNI附螺纹直接调用),IllegalCallerException
被抛出。 要在这样的上下文中获取记录器,请使用将隐式标识为调用者的辅助类,或使用系统LoggerFinder
来获取记录器。 请注意,做后者可能会迫切地初始化底层日志记录系统。 - 参数
-
name
- 记录器的名称。 - 结果
-
一个可以由调用类使用的
System.Logger
的实例。 - 异常
-
NullPointerException
- 如果name
是null
。 -
IllegalCallerException
- 如果堆栈上没有Java调用者帧。 - 从以下版本开始:
- 9
-
getLogger
public static System.Logger getLogger(String name, ResourceBundle bundle)
返回一个可本地化的实例,为呼叫者使用Logger
。 返回的记录器将使用提供的资源束进行消息定位。- API Note:
-
该方法旨在在系统完全初始化后使用。
该方法可能会触发
System.LoggerFinder
服务的即时加载和初始化,如果Java运行时尚未准备好初始化具体的服务实现,则可能会导致问题。 可能在引导顺序早期加载并需要记录本地化消息的系统类应使用getLogger(java.lang.String)
创建记录器,然后使用将资源束作为参数的日志方法。 - 实现要求:
-
返回的记录器将执行由
LoggerFinder.getLocalizedLogger(name, bundle, module)
指定的消息定位,其中module
是呼叫者的模块。 在从堆栈中没有调用者帧的上下文调用System.getLogger
的情况下(例如,当直接从JNI连接的线程调用)时,将抛出IllegalCallerException
。 要在这样的上下文中获取记录器,请使用将隐式标识为调用者的辅助类,或使用系统LoggerFinder
来获取记录器。 请注意,做后者可能会迫切地初始化底层日志记录系统。 - 参数
-
name
- 记录器的名称。 -
bundle
- 资源束。 - 结果
-
一个
System.Logger
的实例,它将使用提供的资源束进行消息定位。 - 异常
-
NullPointerException
- 如果name
是null
或bundle
是null
。 -
IllegalCallerException
- 如果堆栈上没有Java调用者帧。 - 从以下版本开始:
- 9
-
exit
public static void exit(int status)
终止当前运行的Java虚拟机。 该参数作为状态代码; 按照惯例,非零状态码表示异常终止。该方法在类
Runtime
调用exit
方法。 此方法从不正常返回。呼叫
System.exit(n)
有效地等效于呼叫:Runtime.getRuntime().exit(n)
- 参数
-
status
- 退出状态。 - 异常
-
SecurityException
- 如果存在安全管理员,并且其checkExit
方法不允许以指定状态退出。 - 另请参见:
-
Runtime.exit(int)
-
gc
public static void gc()
运行垃圾回收器。调用
gc
方法表明,Java虚拟机花费了回收未使用对象的努力,以使其当前占用的内存可用于快速重用。 当控件从方法调用返回时,Java虚拟机已经尽力从所有丢弃的对象中回收空间。电话
System.gc()
有效地等效于呼叫:Runtime.getRuntime().gc()
- 另请参见:
-
Runtime.gc()
-
runFinalization
public static void runFinalization()
运行任何对象等待定稿的最终化方法。调用该方法表明,对运行在Java虚拟机的努力
finalize
已发现物体的方法被废弃,但其finalize
方法还没有被运行。 当控件从方法调用返回时,Java虚拟机已尽力完成所有未完成的定稿。呼叫
System.runFinalization()
有效地等效于呼叫:Runtime.getRuntime().runFinalization()
-
runFinalizersOnExit
@Deprecated(since="1.2", forRemoval=true) public static void runFinalizersOnExit(boolean value)
不推荐用于删除:此API元素将在以后的版本中被删除。 这种方法本质上是不安全的。 它可能导致在活动对象上调用finalizer,而其他线程同时操作这些对象,导致不稳定的行为或死锁。 此方法在将来的Java SE版本中可能会被删除。退出时启用或禁用最终化; 这样做指定了具有尚未自动调用的finalizer的所有对象的finalizer将在Java运行时退出之前运行。 默认情况下,退出时终止。如果有一个安全管理器,它的
checkExit
方法首先被调用为0作为参数,以确保退出是允许的。 这可能会导致SecurityException。- 参数
-
value
- 指示启用或禁用完成 - 异常
-
SecurityException
- 如果存在安全管理员,并且其checkExit
方法不允许退出。 - 从以下版本开始:
- 1.1
- 另请参见:
-
Runtime.exit(int)
,Runtime.gc()
,SecurityManager.checkExit(int)
-
load
public static void load(String filename)
加载由filename参数指定的本机库。 filename参数必须是绝对路径名。 如果文件名参数在剥离任何特定于平台的库前缀,路径和文件扩展名时,表示名称为例如L的库,并且名为L的本地库与VM静态链接,则JNI_OnLoad_L函数调用库导出而不是尝试加载动态库。 与参数匹配的文件名不必存在于文件系统中。 有关详细信息,请参阅JNI规范。 否则,文件名参数以实现相关的方式映射到本机库映像。呼叫
System.load(name)
有效地等效于呼叫:Runtime.getRuntime().load(name)
- 参数
-
filename
- 要加载的文件。 - 异常
-
SecurityException
- 如果存在安全管理员,并且其checkLink
方法不允许加载指定的动态库 -
UnsatisfiedLinkError
- 如果文件名不是绝对路径名,则本地库不会与VM静态链接,或者该库不能由主机系统映射到本机库映像。 -
NullPointerException
- 如果filename
是null
- 另请参见:
-
Runtime.load(java.lang.String)
,SecurityManager.checkLink(java.lang.String)
-
loadLibrary
public static void loadLibrary(String libname)
加载由libname
参数指定的本机库。libname
参数不能包含任何平台特定的前缀,文件扩展名或路径。 如果一个名为libname
的本机库与VM静态链接,则调用库导出的JNI_OnLoad_libname
函数。 有关详细信息,请参阅JNI规范。 否则,libname参数从系统库位置加载,并以实现相关的方式映射到本机库映像。呼叫
System.loadLibrary(name)
有效地等同于呼叫Runtime.getRuntime().loadLibrary(name)
- 参数
-
libname
- 图书馆的名称。 - 异常
-
SecurityException
- 如果存在安全管理员,并且其checkLink
方法不允许加载指定的动态库 -
UnsatisfiedLinkError
- 如果libname参数包含文件路径,本机库不会与VM静态链接,或者该库不能由主机系统映射到本机库映像。 -
NullPointerException
- 如果libname
是null
- 另请参见:
-
Runtime.loadLibrary(java.lang.String)
,SecurityManager.checkLink(java.lang.String)
-
mapLibraryName
public static String mapLibraryName(String libname)
将库名称映射到表示本地库的平台特定字符串。- 参数
-
libname
- 图书馆的名称。 - 结果
- 平台依赖的本机库名称。
- 异常
-
NullPointerException
- 如果libname
是null
- 从以下版本开始:
- 1.2
- 另请参见:
-
loadLibrary(java.lang.String)
,ClassLoader.findLibrary(java.lang.String)
-
-