Инструмент java запускает приложение Java. Это делает это, запуская среду выполнения Java, загружая указанный класс, и вызывая что основной метод класса.
Метод должен быть объявлен общедоступный и статичный, он не должен возвратить значение, и он должен принять a String массив в качестве параметра. Объявление метода должно быть похожим на следующее:
public static void main(String args[])
По умолчанию первым параметром неопции является имя класса, который будет вызван. Должно использоваться полностью определенное имя класса. Если - опция фляги определяется, первым параметром неопции является имя архива JAR, содержащего класс и файлы ресурсов для приложения с классом запуска, обозначенным заголовком декларации Основного класса.
Среда выполнения Java ищет класс запуска, и другие используемые классы, в трех наборах расположений: путь к классу начальной загрузки, установленные расширения, и пользовательский путь к классу.
Параметры неопции после имени класса или имени файла JAR передают к основной функции.
У средства запуска есть ряд стандартных опций, которые поддерживаются на текущей среде выполнения и будут поддерживаться в будущих выпусках. Кроме того, текущие реализации виртуальных машин поддерживают ряд нестандартных опций, которые подвержены изменениям в будущих выпусках.
Выберите Java Клиент HotSpot VM. 64-разрядный способный jdk в настоящий момент игнорирует эту опцию и вместо этого использует Сервер Горячей точки Java VM.
Определите список каталогов, архивов JAR, и архивов ZIP, чтобы искать файлы класса. Записи пути к классу разделяются двоеточиями (:). Определяя - путь к классу или - CP переопределяет любую установку переменной окружения ПУТИ К КЛАССУ.
Если - путь к классу и - CP не используется, и ПУТЬ К КЛАССУ не устанавливается, пользовательский путь к классу состоит из текущего каталога (.).
Как специальное удобство, элемент пути к классу, содержащий базовое имя * считается эквивалентным определению списка всех файлов в каталоге с расширением .jar или .JAR (программа java не может сказать различие между этими двумя вызовами).
Например, если каталог foo содержит a.jar и b.JAR, тогда элемент пути к классу foo/* расширяется до a A.jar:b.JAR, за исключением того, что порядок файлов фляги является неуказанным. Все файлы фляги в указанном каталоге, даже скрытых, включаются в список. Запись пути к классу, состоящая просто из * расширяется до списка всех файлов фляги в текущем каталоге. CLASSPATH переменная окружения, где определено, будет так же расширена. Любое подстановочное расширение пути к классу происходит прежде, чем виртуальная машина Java запускается - никакая программа Java никогда не будет видеть нерасширенные подстановочные знаки кроме, запрашивая среду. Например; вызывая System.getenv("CLASSPATH").
Запросите что программа быть выполненными в 32-разрядной или 64-разрядной среде, соответственно. Если требуемая среда не устанавливается или не поддерживается, об ошибке сообщают.
В настоящий момент только Java Сервер HotSpot, VM поддерживает 64-разрядную работу, и "-сервер" опция, неявен с использованием-d64. И "-клиент" опция игнорируется с использованием-d64. Это подвержено изменениям в будущем выпуске.
Если ни-d32, ни-d64 не определяются, значение по умолчанию должно работать в 32-разрядной среде, за исключением 64-разрядного только системы. Это подвержено изменениям в будущем выпуске.
Утверждения включения. Утверждения отключаются по умолчанию.
Без параметров enableassertions или - земля включает утверждениям. С одним параметром, заканчивающимся в "...", переключатель включает утверждениям в указанном пакете и любых подпакетах. Если параметром является просто "...", переключатель включает утверждениям в неназванном пакете в текущем рабочем каталоге. С одним параметром, не заканчивающимся в "...", переключатель включает утверждениям в указанном классе.
Если единственная командная строка содержит многократные экземпляры этих переключателей, они обрабатываются в порядке прежде, чем загрузить любые классы. Так, например, чтобы выполнить программу с утверждениями, включенными только в пакете com.wombat.fruitbat (и любых подпакетах), следующая команда могла использоваться:
java -ea:com.wombat.fruitbat... <Main Class>
-enableassertions и - переключатели земли применяются ко всем загрузчикам класса и к системным классам (у которых нет загрузчика класса). Есть одно исключение к этому правилу: в их форме без параметров переключатели не применяются к системе. Это облегчает включать, утверждает во всех классах за исключением системных классов. Отдельный переключатель обеспечивается для включения, утверждает во всех системных классах; см.-enablesystemassertions ниже.
Утверждения отключения. Это - значение по умолчанию.
Без параметров disableassertions или da - отключает утверждения. С одним параметром, заканчивающимся в "...", переключатель отключает утверждения в указанном пакете и любых подпакетах. Если параметром является просто "...", переключатель отключает утверждения в неназванном пакете в текущем рабочем каталоге. С одним параметром, не заканчивающимся в "...", переключатель отключает утверждения в указанном классе.
Чтобы выполнить программу с утверждениями, включенными в пакете com.wombat.fruitbat, но отключенный в классе com.wombat.fruitbat.Brickbat, следующая команда могла использоваться:
-disableassertions и da - переключатели применяются ко всем загрузчикам класса и к системным классам (у которых нет загрузчика класса). Есть одно исключение к этому правилу: в их форме без параметров переключатели не применяются к системе. Это облегчает включать, утверждает во всех классах за исключением системных классов. Отдельный переключатель обеспечивается для включения, утверждает во всех системных классах; см.-disablesystemassertions ниже.
-enablesystemassertions
-esa
Включение утверждает во всех системных классах (устанавливает состояние утверждения по умолчанию для системных классов true).
-disablesystemassertions
-dsa
Отключения утверждают во всех системных классах.
- фляга
Выполните программу, инкапсулировавшую в файле JAR. Первым параметром является имя файла JAR вместо имени класса запуска. Для этой опции, чтобы работать, декларация файла JAR должна содержать строку Основного класса формы: имя класса. Здесь, имя класса идентифицирует класс, имеющий метод public static void main(String[] args), который служит начальной точкой Вашего приложения. См. ссылочную страницу инструмента Фляги и след Фляги Учебного руководства по Java для информации о работе с файлами Фляги и декларациями Файла фляги.
Когда Вы используете эту опцию, файл JAR является источником всех пользовательских классов, и другие пользовательские настройки пути к классу игнорируются.
Отметьте, что у файлов JAR, которые могут быть выполнены с "java - фляга" опция, может быть их выполняющий набор полномочий, таким образом, они могут быть выполнены, не используя "java - фляга". Отошлите к Архиву Java (JAR) Файлы.
Включайте частный на пользователя JREs в поиск версии.
-no-jre-restrict-search
Исключите частный на пользователя JREs в поиске версии.
- многословный
-verbose:class
Информация о дисплее о каждом классе загружалась.
-verbose:gc
Отчет относительно каждого события сборки "мусора".
-verbose:jni
Сообщите информацию об использовании собственных методов и другого Java Собственное Интерфейсное действие.
- версия
Выведите на экран информацию о версии и выход.
-version:release
Определяет, что версия, определенная выпуском, требуется классом или файлом фляги, определенным на командной строке. Если версия вызванной команды java не встретит эту спецификацию, и соответствующая реализация находится на системе, то соответствующая реализация будет использоваться.
выпустите не, только может определить точную версию, но и может также определить список версий, названных строкой версии. Строка версии является упорядоченным списком диапазонов версии, разделенных пробелами. Диапазон версии является или идентификатором версии, идентификатор версии, сопровождаемый звездой (*), идентификатор версии, сопровождаемый знаком "плюс" (+), или два диапазона версии объединили использование амперсанда (&). Звездообразное соответствие префикса средств, знак "плюс" означает эту версию или больше, и амперсанд означает логическое выполнение операции "И" этих двух диапазонов версии. Например:
-version:"1.6.0_13 1.6*&1.6.0_10+"
Значение вышеупомянутого состоит в том, что файл класса или фляги требует или версии 1.6.0_13, или версии с 1.6 как префикс идентификатора версии, и это не меньше чем 1.6.0_10.. Точный синтаксис и определение строк версии могут быть сочтены в Приложении A Сети Java Запускающимся Протоколом & Спецификацией (JSR-56) API.
Для файлов фляги обычное предпочтение должно определить требования версии в декларации файла фляги, а не на командной строке.
См. следующий раздел ПРИМЕЧАНИЙ для важной информации о политике об использовании этой опции.
-showversion
Выведите на экран информацию о версии и продолжайте.
-?
- справка
Информация об использовании дисплея и выход.
-splash:imagepath
Покажите экран-заставку с изображением, определенным imagepath.
-X
Информация о дисплее о нестандартных опциях и выходе.
Работайте в только интерпретируемом режиме. Компиляция к собственному коду отключается, и все байт-коды выполняются интерпретатором. Выигрыши в производительности, предлагаемые Java адаптивный компилятор VM HotSpot, не будут присутствовать в этом режиме.
-Xbatch
Отключите фоновую компиляцию. Обычно VM скомпилирует метод как фоновую задачу, выполняя метод в режиме интерпретатора, пока фоновая компиляция не будет закончена. Флаг -Xbatch отключает фоновую компиляцию так, чтобы компиляция всех методов продолжилась как приоритетная задача пока не завершено.
-Xbootclasspath:bootclasspath
Определите разделенный от двоеточия список каталогов, архивов JAR, и архивов ZIP, чтобы искать файлы класса начальной загрузки. Они используются вместо файлов класса начальной загрузки, включенных в платформу Java JDK. Отметьте: Приложения, которые используют эту опцию с целью переопределения класса в rt.jar, не должны быть развернуты, поскольку выполнение так нарушило бы лицензию двоичного кода среды выполнения Java.
-Xbootclasspath/a:path
Определите разделенный от двоеточия путь directires, архивов JAR, и архивов ZIP, чтобы добавить к пути к классу начальной загрузки по умолчанию.
-Xbootclasspath/p:path
Определите разделенный от двоеточия путь directires, архивов JAR, и архивов ZIP, чтобы предварительно ожидать перед путем к классу начальной загрузки по умолчанию. Отметьте: Приложения, которые используют эту опцию с целью переопределения класса в rt.jar, не должны быть развернуты, поскольку выполнение так нарушило бы лицензию двоичного кода среды выполнения Java.
-Xcheck:jni
Выполните дополнительные проверки на Java Собственный Интерфейс (JNI) функции. Определенно, виртуальная машина Java проверяет параметров, которые передают к функции JNI так же как данным среды выполнения прежде, чем обработать запрос JNI. Любые недопустимые данные, с которыми встречаются, указывают на проблему в собственном коде, и виртуальная машина Java завершится с фатальной ошибкой в таких случаях. Ожидайте ухудшение производительности, когда эта опция используется.
-Xfuture
Выполните строгие проверки формата файла класса. В целях назад совместимости проверки формата по умолчанию, выполняемые виртуальной машиной JDK, не более строги чем проверки, выполняемые 1.1.x версии программного обеспечения JDK. Флаг-Xfuture включает более строгие проверки формата файла класса, которые осуществляют более близкое соответствие к спецификации формата файла класса. Разработчики поощряются использовать этот флаг, разрабатывая новый код, потому что более строгие проверки станут значением по умолчанию в будущих выпусках средства запуска приложения Java.
-Xnoclassgc
Сборка "мусора" класса отключения. Использование этой опции предотвратит восстановление памяти после загруженных классов, таким образом увеличивающих полное использование памяти. Это могло заставить OutOfMemoryError быть брошенным в некоторые приложения.
-Xincgc
Включите инкрементному сборщику "мусора". Инкрементный сборщик "мусора", который является прочь по умолчанию, уменьшит случайные длинные паузы сборки "мусора" во время выполнения программы. Инкрементный сборщик "мусора" время от времени выполнится одновременно с программой, и в течение таких времен уменьшит емкость процессора, доступную программе.
-Xloggc:file
Отчет относительно каждого события сборки "мусора", как с-verbose:gc, но регистрирует эти данные к файлу. В дополнение к информации -verbose:gc дает, каждое событие, о котором сообщают, будет preceeded к этому времени (в секундах) начиная с первого события сборки "мусора".
Всегда используйте локальную файловую систему для хранения этого файла, чтобы избежать останавливать JVM из-за сетевой задержки. Файл может быть усеченным в случае полной файловой системы, и журналирование продвинется усеченный файл. Эта опция переопределяет -verbose:gc, если обоим дают на командной строке.
-Xmsn
Определите начальный размер, в байтах, пула выделения памяти. Это значение должно быть кратным числом 1024 больше чем 1 МБ. Добавьте букву k или K, чтобы указать на килобайты, или m или M, чтобы указать на мегабайты. Значение по умолчанию выбирается во время выполнения, основанное на конфигурации системы. Для получения дополнительной информации см. Эргономику HotSpot
Примеры:
-Xms6291456
-Xms6144k
-Xms6m
-Xmxn
Определите максимальный размер, в байтах, пула выделения памяти. Это значение должно кратное число 1024 больше чем 2 МБ. Добавьте букву k или K, чтобы указать на килобайты, или m или M, чтобы указать на мегабайты. Значение по умолчанию выбирается во время выполнения, основанное на конфигурации системы. Для получения дополнительной информации см. Эргономику HotSpot
Примеры:
-Xmx83886080
-Xmx81920k
-Xmx80m
На Солярисе 7 и Солярисе 8 платформ SPARC, верхний предел для этого значения составляет приблизительно 4000 м. минус служебное количество. На Солярисе 2.6 и x86 платформах, верхний предел составляет приблизительно 2000 м. минус служебное количество. На платформах Linux верхний предел составляет приблизительно 2000 м. минус служебное количество.
-Xprof
Профилирует рабочую программу, и отправляет данные профилирования стандартному выводу. Эта возможность предоставляется как утилита, которая полезна в разработке программы и не предназначается, чтобы использоваться в производственных системах.
-Xrs
Уменьшает использование сигналов операционной системы виртуальной машиной Java (JVM).
В предыдущем выпуске средство Рычагов Завершения работы было добавлено, чтобы позволить аккуратное завершение работы приложения Java. Намерение состояло в том, чтобы позволить пользовательскому коду уборки (такому как заключительные соединения с базой данных) работать на завершении работы, даже если JVM завершается резко.
JVM Sun ловит сигналы реализовать рычаги завершения работы для аварийного завершения JVM. JVM использует SIGHUP, SIGINT, и SIGTERM, чтобы инициировать выполнение рычагов завершения работы.
JVM использует подобный механизм, чтобы реализовать пред1.2 опции дампа стеков потока для того, чтобы отладить цели. JVM Sun использует SIGQUIT, чтобы выполнить дампы потока.
Приложения, встраивающие JVM часто, должны захватывать сигналы как SIGINT или SIGTERM, который может привести к интерференции с собственными сигнальными обработчиками JVM.-Xrs параметр командной строки доступен, чтобы решить эту проблему. Когда-Xrs используется на JVM Sun, сигнальных масках для SIGINT, SIGTERM, SIGHUP, и SIGQUIT не изменяются JVM, и сигнализируют, что обработчики для этих сигналов не устанавливаются.
Есть два последствия определения-Xrs:
Дампы потока SIGQUIT не доступны.
Пользовательский код ответственен за заставление рычагов завершения работы работать, например вызывая System.exit (), когда JVM должна быть завершена.
-Xssn
Поток набора складывает размер.
-XX: + UseAltSigs
VM использует SIGUSR1 и SIGUSR2 по умолчанию, который может иногда конфликтовать с приложениями что сигнально-цепочечный SIGUSR1 и SIGUSR2. Опция -XX:+UseAltSigs заставит VM использовать сигналы кроме SIGUSR1 и SIGUSR2 как значение по умолчанию.
-version:release параметр командной строки не устанавливает ограничений для сложности спецификации выпуска. Однако, только ограниченное подмножество возможных спецификаций выпуска представляют звуковую политику, и только они полностью поддерживаются. Эти политики:
Любая версия, представленная, не используя эту опцию.
Любая версия, больше чем произвольно точный идентификатор версии. Например:
"1.6.0_10+"
Это использовало бы любую версию, больше чем 1.6.0_10. Это полезно для случая, где интерфейс был представлен (или исправленная ошибка) в определенном выпуске.
Версия, больше чем произвольно точный идентификатор версии, ограниченный верхней границей того семейства выпуска. Например:
"1.6.0_10+&1.6*"
"Или" выражения элементов 2. или 3. выше. Например:
"1.6.0_10+&1.6* 1.7+"
Подобный элементу 2. это полезно, когда изменение было представлено в выпуске (1.7), но также и сделано доступный в обновлениях к предыдущим выпускам.
Следующие значения выхода обычно возвращаются средством запуска, обычно когда средство запуска вызывают с неправильными параметрами, серьезными ошибками, или исключениями, выданными от виртуальной машины Java. Однако, приложение Java может хотеть возвращать любое значение, используя вызов API System.exit(exitValue).