Spec-Zone .ru
спецификации, руководства, описания, API
|
public final class System extends Object
System
класс содержит несколько полезных полей класса и методов. Это нельзя инстанцировать. Среди услуг, предоставленных System
класс является стандартным вводом, стандартным выводом, и потоками вывода ошибок; доступ к внешне определенным свойствам и переменным окружения; средство загружающихся файлов и библиотек; и служебный метод для того, чтобы быстро скопировать часть массива.
Модификатор и Тип | Поле и Описание |
---|---|
static PrintStream |
допустить ошибку
"Стандартный" поток вывода ошибок.
|
static InputStream |
в
"Стандартный" входной поток.
|
static PrintStream |
"Стандартный" поток вывода.
|
Модификатор и Тип | Метод и Описание |
---|---|
static void |
arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
Копирует массив с указанного исходного массива, начинающегося в указанной позиции, к указанной позиции целевого массива.
|
static String |
clearProperty(String key)
Удаляет системное свойство, обозначенное указанным ключом.
|
static Console |
console()
Возвращает уникальное
Console объект, связанный с текущей виртуальной машиной Java, если любой. |
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)
Возвращает тот же самый хэш-код для данного объекта, как был бы возвращен хэш-кодом метода по умолчанию (), переопределяет ли класс данного объекта хэш-код ().
|
static Channel |
inheritedChannel()
Возвращает канал, наследованный из объекта, который создал эту виртуальную машину Java.
|
static String |
lineSeparator()
Возвращает системно-зависимую строку разделителя строки.
|
static void |
load(String filename)
Загружает файл кода указанным именем файла от локальной файловой системы как динамическая библиотека.
|
static void |
loadLibrary(String libname)
Загружает системную библиотеку, определенную
libname параметр. |
static String |
mapLibraryName(String libname)
Отображает имя библиотеки в специфичную для платформы строку, представляющую собственную библиотеку.
|
static long |
nanoTime()
Возвращает текущую стоимость источника времени рабочей виртуальной машины Java с высокой разрешающей способностью, в наносекундах.
|
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)
Устанавливает безопасность системы.
|
public static final InputStream in
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)
public static final PrintStream err
Обычно этот поток соответствует выводу дисплея или другому выходному месту назначения, определенному средой узла или пользователем. Условно, этот поток вывода используется, чтобы вывести на экран сообщения об ошибках или другую информацию, которая должна прибыть в пристальное внимание пользователя даже если основной поток вывода, значение переменной out
, был перенаправлен к файлу или другому месту назначения, которое обычно непрерывно не контролируется.
public static void setIn(InputStream in)
Во-первых, если есть менеджер безопасности, checkPermission
метод вызывают с a RuntimePermission("setIO")
разрешение, чтобы видеть, ли нормально повторно присваивать "стандартный" входной поток.
in
- новый стандартный входной поток.SecurityException
- если менеджер безопасности существует и checkPermission
метод не позволяет повторно присваиваться входного потока стандарта.SecurityManager.checkPermission(java.security.Permission)
, RuntimePermission
public static void setOut(PrintStream out)
Во-первых, если есть менеджер безопасности, checkPermission
метод вызывают с a RuntimePermission("setIO")
разрешение, чтобы видеть, ли нормально повторно присваивать "стандартный" поток вывода.
out
- новый поток стандартного выводаSecurityException
- если менеджер безопасности существует и checkPermission
метод не позволяет повторно присваиваться потока стандартного вывода.SecurityManager.checkPermission(java.security.Permission)
, RuntimePermission
public static void setErr(PrintStream err)
Во-первых, если есть менеджер безопасности, checkPermission
метод вызывают с a RuntimePermission("setIO")
разрешение, чтобы видеть, ли нормально повторно присваивать "стандартный" поток вывода ошибок.
err
- новый стандартный поток вывода ошибок.SecurityException
- если менеджер безопасности существует и checkPermission
метод не позволяет повторно присваиваться стандартного потока вывода ошибок.SecurityManager.checkPermission(java.security.Permission)
, RuntimePermission
public static Console console()
Console
объект, связанный с текущей виртуальной машиной Java, если любой.public static Channel inheritedChannel() throws IOException
Этот метод возвращает канал, полученный, вызывая inheritedChannel
метод значения по умолчанию в масштабе всей системы SelectorProvider
объект.
В дополнение к ориентированным на сеть каналам, описанным в inheritedChannel
, этот метод может возвратить другие виды каналов в будущем.
IOException
- Если ошибка ввода-вывода происходитSecurityException
- Если менеджер безопасности присутствует, и он не разрешает доступ к каналу.public static void setSecurityManager(SecurityManager s)
Если есть менеджер безопасности, уже установленный, этот метод первые вызовы менеджер безопасности checkPermission
метод с a RuntimePermission("setSecurityManager")
разрешение, чтобы гарантировать нормально заменять существующего менеджера безопасности. Это может привести к броску a 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()
См. описание класса Date
для обсуждения небольших несоответствий, которые могут возникнуть между "машинным временем" и всемирным координированным временем (UTC).
Date
public static long nanoTime()
Этот метод может только использоваться, чтобы измерить прошедшее время и не связывается ни с каким другим понятием системы или тактовое стеной время. Возвращенное значение представляет наносекунды с некоторого времени фиксированного, но произвольного начала (возможно, в будущем, таким образом, значения могут быть отрицательными). Тот же самый источник используется всеми вызовами этого метода в экземпляре виртуальной машины Java; другие экземпляры виртуальной машины, вероятно, будут использовать различный источник.
Этот метод обеспечивает точность наносекунды, но не обязательно разрешение наносекунды (то есть, как часто изменения значения) - никакие гарантии не делаются за исключением того, что разрешение, по крайней мере, столь же хорошо как тот из currentTimeMillis()
.
Различия в последовательных вызовах, которые охватывают больше чем приблизительно 292 года (263 наносекунды) не будут правильно вычислять прошедшее время из-за числового переполнения.
Значения, возвращенные этим методом, становятся значимыми только, когда различие между двумя такими значениями, полученными в пределах того же самого экземпляра виртуальной машины Java, вычисляется.
Например, чтобы измериться, сколько времени некоторый код берет, чтобы выполниться:
long startTime = System.nanoTime();
// ... the code being measured ...
long estimatedTime = System.nanoTime() - startTime;
Сравнить два значения nanoTime
long t0 = System.nanoTime();
...
long t1 = System.nanoTime();
нужно использовать t1 - t0 < 0
, нет t1 < t0
, из-за возможности числового переполнения.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
, тогда a NullPointerException
бросается.
Если src
null
, тогда a 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)
метод возвращается как a Properties
объект. Если нет никакого текущего набора системных свойств, ряд системных свойств сначала создается и инициализируется. Этот набор системных свойств всегда включает значения для следующих ключей:
Ключ | Описание Присваиваемого значения |
---|---|
java.version |
Версия Среды выполнения Java |
java.vendor |
Поставщик Среды выполнения Java | 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 |
java.specification.vendor |
Поставщик спецификации Среды выполнения Java |
java.specification.name |
Имя спецификации Среды выполнения Java |
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 |
Разделитель строки (" \n" на UNIX) |
user.name |
Имя учетной записи пользователя |
user.home |
Корневой каталог пользователя |
user.dir |
Текущий рабочий каталог пользователя |
Разнообразные пути в системном значении свойства разделяются символом разделителя пути платформы.
Отметьте это, даже если менеджер безопасности не разрешает getProperties
работа, это может хотеть разрешать getProperty(String)
работа.
SecurityException
- если менеджер безопасности существует и checkPropertiesAccess
метод не предоставляет доступ к системным свойствам.setProperties(java.util.Properties)
, SecurityException
, SecurityManager.checkPropertiesAccess()
, Properties
public static String lineSeparator()
line.separator
. На системах UNIX это возвращается "\n"
; на системах Microsoft Windows это возвращается "\r\n"
.
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
- если менеджер безопасности существует и checkPropertyAccess
метод не предоставляет доступ к указанному системному свойству.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)
Во-первых, если есть менеджер безопасности, 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()
public static String setProperty(String key, String value)
Во-первых, если менеджер безопасности существует, SecurityManager.checkPermission
метод вызывают с a PropertyPermission(key, "write")
разрешение. Это может привести к бросаемому 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)
Во-первых, если менеджер безопасности существует, SecurityManager.checkPermission
метод вызывают с a PropertyPermission(key, "write")
разрешение. Это может привести к бросаемому SecurityException. Если никакое исключение не выдается, указанное свойство удаляется.
key
- имя системного свойства, которое будет удалено.null
если не было никакого свойства с тем ключом.SecurityException
- если менеджер безопасности существует и checkPropertyAccess
метод не предоставляет доступ к указанному системному свойству.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)
Если менеджер безопасности существует, checkPermission
метод вызывают с a
разрешение. Это может привести к a RuntimePermission
("getenv."+name)SecurityException
быть брошенным. Если никакое исключение не выдается значение переменной name
возвращается.
Системные свойства и переменные окружения являются и концептуально отображениями между именами и значениями. Оба механизма могут использоваться, чтобы передать определяемую пользователем информацию к процессу Java. Переменные окружения имеют более глобальный эффект, потому что они видимы всем потомкам процесса, который определяет их, не только непосредственный подпроцесс Java. У них может быть тонко различная семантика, такая как нечувствительность к регистру, на различных операционных системах. По этим причинам у переменных окружения, более вероятно, будут непреднамеренные побочные эффекты. Лучше использовать системные свойства где только возможно. Переменные окружения должны использоваться, когда глобальный эффект требуется, или когда внешний системный интерфейс требует переменной окружения (такой как PATH
).
На системах UNIX алфавитный случай name
является обычно существенным, в то время как на системах Microsoft Windows это обычно нет. Например, выражение System.getenv("FOO").equals(System.getenv("foo"))
вероятно, будет истина на Microsoft Windows.
name
- имя переменной окруженияnull
если переменная не определяется в системной средеNullPointerException
- если name
null
SecurityException
- если менеджер безопасности существует и checkPermission
метод не предоставляет доступ к переменной окружения name
getenv()
, ProcessBuilder.environment()
public static Map<String,String> getenv()
Если система не поддерживает переменные окружения, пустая карта возвращается.
Возвращенная карта никогда не будет содержать нулевые ключи или значения. Попытка запросить присутствие нулевого ключа или значения бросит a NullPointerException
. Попытка запросить присутствие ключа или значения, которое не имеет типа String
бросит a ClassCastException
.
Возвращенная карта и ее представления набора, возможно, не повинуются общему контракту Object.equals(java.lang.Object)
и Object.hashCode()
методы.
Возвращенная карта является обычно чувствительной к регистру на всех платформах.
Если менеджер безопасности существует, checkPermission
метод вызывают с a
разрешение. Это может привести к a RuntimePermission
("getenv.*")SecurityException
быть брошенным.
Передавая информацию к подпроцессу Java, системные свойства обычно предпочитаются по переменным окружения.
SecurityException
- если менеджер безопасности существует и checkPermission
метод не предоставляет доступ к среде процессаgetenv(String)
, ProcessBuilder.environment()
public static void exit(int status)
Это вызовы метода exit
метод в классе Runtime
. Этот метод никогда обычно не возвращается.
Вызов 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)
Если есть менеджер безопасности, checkExit
метод сначала вызывают с 0 как его параметр, чтобы гарантировать, что выход позволяется. Это могло привести к 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)
Для дальнейшей ссылки API и документации разработчика, см.
Авторское право © 1993, 2011, Oracle и/или его филиалы. Все права защищены.