Инструмент java запускает приложение Java. Это делает это, запуская среду выполнения Java, загружая указанный class, и вызывая что основной метод class.
Метод должен быть объявлен общедоступный и статичный, он не должен возвратить значение, и он должен принять a String массив в качестве параметра. Объявление метода должно быть похожим на следующее:
public static void main(String args[])
По умолчанию первым параметром неопции является имя class, который будет вызван. Должно использоваться полностью определенное имя class. Если - опция фляги определяется, первым параметром неопции является имя архива JAR, содержащего class и ресурс f iles для приложения с запуском class, обозначенный заголовком декларации Основного класса.
Среда выполнения Java ищет запуск class, и другие используемые классы, в трех наборах расположений: начальная загрузка путь class, установленные расширения, и пользователь путь class.
Параметры неопции после имени class или имени файла JAR передают к основной функции.
javaw команда идентична java, за исключением того, что с javaw нет никакой связанной консоли. Используйте javaw, когда Вы не хотите, чтобы окно командной строки появилось. javaw средство запуска, однако, выведет на экран диалоговое окно с информацией об ошибке, если запуск перестанет работать по некоторым причинам.
У средства запуска есть ряд стандартных опций, которые поддерживаются на текущей среде выполнения и будут поддерживаться в будущих выпусках. Кроме того, Java значения по умолчанию HotSpot, VMs обеспечивают ряд нестандартных опций, которые подвержены изменениям в будущих выпусках.
Выберите Java Сервер HotSpot VM. На 64-разрядном способном jdk только Java Сервер HotSpot VM поддерживается так - параметр сервера неявен. Это подвержено изменениям в будущем выпуске.
Определите список каталогов, архивов JAR, и архивов ZIP, чтобы искать файлы class. Записи пути к классу разделяются точками с запятой (;). Определяя - путь к классу или - CP переопределяет любую установку переменной окружения ПУТИ К КЛАССУ.
Если - путь к классу и - CP не используется, и ПУТЬ К КЛАССУ не устанавливается, пользователь, путь class состоит из текущего каталога (.).
Как специальное удобство, элемент пути class, содержащий базовое имя * считается эквивалентным определению списка всех файлов в каталоге с расширением .jar или .JAR (программа java не может сказать различие между этими двумя вызовами).
Например, если каталог foo содержит a.jar и b.JAR, тогда элемент пути class foo/* расширяется до a A.jar:b.JAR, за исключением того, что порядок файлов фляги является неуказанным. Все файлы фляги в указанном каталоге, даже скрытых, включаются в список. Запись пути к классу, состоящая просто из * расширяется до списка всех файлов фляги в текущем каталоге. CLASSPATH переменная окружения, где определено, будет так же расширена. Любое подстановочное расширение пути к классу происходит прежде, чем виртуальная машина Java запускается - никакая программа Java никогда не будет видеть нерасширенные подстановочные знаки кроме, запрашивая среду. Например; вызывая System.getenv("CLASSPATH").
Отключите утверждения. Это - значение по умолчанию.
Без параметров disableassertions или da - отключает утверждения. С одним параметром, заканчивающимся в "...", переключатель отключает утверждения в указанном пакете и любых подпакетах. Если параметром является просто "...", переключатель отключает утверждения в неназванном пакете в текущем рабочем каталоге. С одним параметром, не заканчивающимся в "...", переключатель отключает утверждения в указанном class.
Чтобы выполнить программу с утверждениями, включенными в пакете com.wombat.fruitbat, но отключенный в class com.wombat.fruitbat.Brickbat, следующая команда могла использоваться:
-disableassertions и da - переключатели применяются ко всем загрузчикам class и к системным классам (у которых нет загрузчика class). Есть одно исключение к этому правилу: в их форме без параметров переключатели не применяются к системе. Это облегчает включать, утверждает во всех классах за исключением системных классов. Отдельный переключатель обеспечивается, чтобы включить, утверждает во всех системных классах; см.-disablesystemassertions ниже.
Включите утверждениям. Утверждения отключаются по умолчанию.
Без параметров enableassertions или - земля включает утверждениям. С одним параметром, заканчивающимся в "...", переключатель включает утверждениям в указанном пакете и любых подпакетах. Если параметром является просто "...", переключатель включает утверждениям в неназванном пакете в текущем рабочем каталоге. С одним параметром, не заканчивающимся в "...", переключатель включает утверждениям в указанном class.
Если единственная командная строка содержит многократные экземпляры этих переключателей, они обрабатываются в порядке прежде, чем загрузить любые классы. Так, например, чтобы выполнить программу с утверждениями, включенными только в пакете com.wombat.fruitbat (и любых подпакетах), следующая команда могла использоваться:
java -ea:com.wombat.fruitbat... <Main Class>
-enableassertions и - переключатели земли применяются ко всем загрузчикам class и к системным классам (у которых нет загрузчика class). Есть одно исключение к этому правилу: в их форме без параметров переключатели не применяются к системе. Это облегчает включать, утверждает во всех классах за исключением системных классов. Отдельный переключатель обеспечивается, чтобы включить, утверждает во всех системных классах; см.-enablesystemassertions ниже.
-enablesystemassertions
-esa
Включите утверждает во всех системных классах (устанавливает состояние утверждения значения по умолчанию для системных классов true).
-disablesystemassertions
-dsa
Отключает утверждает во всех системных классах.
- справка или-?
Информация об использовании дисплея и выход.
- фляга
Выполните программу, инкапсулировавшую в файле JAR. Первым параметром является имя файла JAR вместо запуска имя class. Для этой опции, чтобы работать, декларация файла JAR должна содержать строку Основного класса формы: имя класса. Здесь, имя класса идентифицирует class, имеющий метод public static void main(String[] args), который служит начальной точкой Вашего приложения. См. ссылочную страницу инструмента Фляги и след Фляги Учебного руководства по Java для информации о работе с файлами Фляги и декларациями Файла фляги.
Когда Вы используете эту опцию, файл JAR является источником всех пользовательских классов, и другим пользователем, настройки пути class игнорируются.
-javaagent:jarpath[=options]
Загрузите агент языка программирования Java, см. java.lang.instrument.
-jre-restrict-search
Включайте частный на пользователя JREs в поиск версии.
-no-jre-restrict-search
Исключите частный на пользователя JREs в поиске версии.
-showversion
Выведите на экран информацию о версии и продолжайте. (См. также - версия.)
-splash:imagepath
Покажите экран-заставку с изображением, определенным imagepath.
- многословный
-verbose:class
Информация о дисплее о каждом class загружалась.
-verbose:gc
Отчет относительно каждого события сборки "мусора".
-verbose:jni
Сообщите информацию об использовании собственных методов и другого Java Собственное действие Интерфейса.
- версия
Выведите на экран информацию о версии и выход.
-version:release
Определяет, что версия, определенная выпуском, требуется class или файлом фляги, определенным на командной строке. Если версия вызванной команды java не встретит эту спецификацию, и соответствующая реализация находится на системе, то соответствующая реализация будет использоваться.
выпустите не, только может определить точную версию, но и может также определить список версий, названных строкой версии. Строка версии является упорядоченным списком диапазонов версии, разделенных пробелами. Диапазон версии является или идентификатором версии, идентификатор версии, сопровождаемый звездой (*), идентификатор версии, сопровождаемый знаком "плюс" (+), или два диапазона версии объединили использование амперсанда (&). Звездообразное соответствие префикса средств, знак "плюс" означает эту версию или больше, и амперсанд означает логическое добавление этих двух диапазонов версии. Например:
-version:"1.6.0_13 1.6* & 1.6.0_10+"
Значение вышеупомянутого состоит в том, что файл class или фляги требует или версии 1.6.0_13, или версии с 1.6 как префикс идентификатора версии, и это не меньше чем 1.6.0_10. Точный синтаксис и определение строк версии могут быть сочтены в Приложении A Сети Java Запускающимся Протоколом & Спецификацией (JSR-56) API.
Для файлов фляги обычное предпочтение должно определить требования версии в декларации файла фляги, а не на командной строке.
См. следующий раздел ПРИМЕЧАНИЙ для важной информации о политике об использовании этой опции.
Информация о дисплее о нестандартных опциях и выходе.
-Xint
Работайте в только интерпретируемом режиме. Компиляция к собственному коду отключается, и все байт-коды выполняются интерпретатором. Выигрыши в производительности, предлагаемые Java адаптивный компилятор VM Клиента HotSpot, не будут присутствовать в этом режиме.
-Xbatch
Отключите фоновую компиляцию. Обычно VM скомпилирует метод как фоновую задачу, выполняя метод в режиме интерпретатора, пока фоновая компиляция не будет закончена. Флаг -Xbatch отключает фоновую компиляцию так, чтобы компиляция всех методов продолжилась как приоритетная задача пока не завершено.
-Xbootclasspath:bootclasspath
Определите разделенный от точки с запятой список каталогов, архивов JAR, и архивов ZIP, чтобы искать начальную загрузку файлы class. Они используются вместо начальной загрузки файлы class, включенные в Java 2 SDK. Отметьте: Приложения, которые используют эту опцию с целью переопределения class в rt.jar, не должны быть развернуты, поскольку выполнение так нарушило бы Java 2 лицензии двоичного кода Среды выполнения.
-Xbootclasspath/a:path
Определите разделенный от точки с запятой путь directires, архивов JAR, и архивы ZIP, чтобы добавить к значению по умолчанию загружают путь class.
-Xbootclasspath/p:path
Определите разделенный от точки с запятой путь directires, архивов JAR, и архивы ZIP, чтобы предварительно ожидать перед значением по умолчанию загружают путь class. Отметьте: Приложения, которые используют эту опцию с целью переопределения class в rt.jar, не должны быть развернуты, поскольку выполнение так нарушило бы Java 2 лицензии двоичного кода Среды выполнения.
-Xcheck:jni
Выполните дополнительные проверки на Java Собственный Интерфейс (JNI) функции. Определенно, виртуальная машина Java проверяет параметров, которые передают к функции JNI так же как данным среды выполнения прежде, чем обработать запрос JNI. Любые недопустимые данные, с которыми встречаются, указывают на проблему в собственном коде, и виртуальная машина Java завершится с фатальной ошибкой в таких случаях. Ожидайте ухудшение производительности, когда эта опция используется.
-Xfuture
Выполните строгий class - проверки формата файла. В целях назад совместимости, проверки формата значения по умолчанию, выполняемые Java виртуальная машина 2 SDK, не более строги чем проверки, выполняемые 1.1.x версии программного обеспечения JDK. Флаг-Xfuture включает более строгий class - проверки формата файла, которые осуществляют более близкое соответствие к class - спецификация формата файла. Разработчики поощряются использовать этот флаг, разрабатывая новый код, потому что более строгие проверки станут значением по умолчанию в будущих выпусках средства запуска приложения Java.
-Xnoclassgc
Отключите сборку "мусора" class. Использование этой опции предотвратит восстановление памяти после загруженных классов, таким образом увеличивающих полное использование памяти. Это могло заставить OutOfMemoryError быть брошенным в некоторые приложения.
-Xincgc
Включите инкрементному сборщику "мусора". Инкрементный сборщик "мусора", который является прочь по умолчанию, уменьшит случайные длинные паузы сборки "мусора" во время выполнения программы. Инкрементный сборщик "мусора" время от времени выполнится одновременно с программой, и в течение таких времен уменьшит емкость процессора, доступную программе.
-Xloggc:file
Отчет относительно каждого события сборки "мусора", как с-verbose:gc, но регистрирует эти данные к файлу. В дополнение к информации -verbose:gc дает, каждое событие, о котором сообщают, будет preceeded к этому времени (в секундах) начиная с первого события сборки "мусора". Всегда используйте локальную файловую систему для хранения этого файла, чтобы избежать останавливать JVM из-за сетевой задержки. Файл может быть усеченным в случае полной файловой системы, и журналирование продвинется усеченный файл. Эта опция переопределяет -verbose:gc, если обоим дают на командной строке.
-Xmnsize или-XX:NewSize
Устанавливает размер молодой генерации (детская).
-Xmsn
Определите начальный размер, в байтах, пула выделения памяти. Это значение должно быть кратным числом 1024 больше чем 1 МБ. Добавьте букву k или K, чтобы указать на килобайты, или m или M, чтобы указать на мегабайты. Значение по умолчанию выбирается во времени выполнения, основанном на конфигурации системы. Для получения дополнительной информации см. Эргономику HotSpot
Примеры:
-Xms6291456
-Xms6144k
-Xms6m
-Xmxn
Определите максимальный размер, в байтах, пула выделения памяти. Это значение должно быть кратным числом 1024 больше чем 2 МБ. Добавьте букву k или K, чтобы указать на килобайты, или m или M, чтобы указать на мегабайты. Значение по умолчанию выбирается во времени выполнения, основанном на конфигурации системы. Для развертывания сервера-Xms и-Xmx часто устанавливаются в то же самое значение. Для получения дополнительной информации см. Эргономику HotSpot
Примеры:
-Xmx83886080
-Xmx81920k
-Xmx80m
-Xprof
Профилирует рабочую программу, и отправляет данные профилирования стандартному выводу. Эта возможность предоставляется как утилита, которая полезна в разработке программы и не предназначается, чтобы использоваться в производственных системах.
-Xrs
Уменьшает использование сигналов операционной системы виртуальной машиной Java (JVM). Эта опция является доступным начинанием с J2SE 1.3.1.
В J2SE 1.3.0, средство Рычагов Завершения работы было добавлено, чтобы позволить аккуратное завершение работы приложения Java. Намерение состояло в том, чтобы позволить пользовательскому коду уборки (такому как заключительные соединения с базой данных) работать на завершении работы, даже если JVM завершается резко.
JVM наблюдает за консольными событиями управления, чтобы реализовать рычаги завершения работы для аварийного завершения JVM. Определенно, JVM регистрирует консольный обработчик управления, который начинает обработку рычага завершения работы и возвращает TRUE для CTRL_C_EVENT, CTRL_CLOSE_EVENT, CTRL_LOGOFF_EVENT, и CTRL_SHUTDOWN_EVENT.
JVM использует подобный механизм, чтобы реализовать пред1.2 опции дампа стеков потока для того, чтобы отладить цели. JVM Sun использует CTRL_BREAK_EVENT, чтобы выполнить дампы потока.
Если JVM выполняется как сервис (например, механизм сервлета для веб-сервера), это может получить CTRL_LOGOFF_EVENT, но не должно инициировать завершение работы, так как операционная система не будет фактически завершать процесс. Чтобы избежать возможной интерференции, такой как это,-Xrs параметр командной строки был добавлен, начинаясь с J2SE 1.3.1. Когда-Xrs опция используется на JVM Sun, JVM не устанавливает консольный обработчик управления, подразумевая, что это не наблюдает за или обрабатывает CTRL_C_EVENT, CTRL_CLOSE_EVENT, CTRL_LOGOFF_EVENT, или CTRL_SHUTDOWN_EVENT.
Есть два последствия определения-Xrs:
Дампы потока Ctrl-Break не доступны.
Пользовательский код ответственен за заставление рычагов завершения работы работать, например вызывая System.exit (), когда JVM должна быть завершена.
-Xssn
Поток набора складывает размер.
-XX:AllocationPrefetchStyle=n
Устанавливает стиль упреждающей выборки, используемой во время выделения. default=2.
-XX: + AggressiveOpts
Включает агрессивной оптимизации.
-XX: + |-DisableAttachMechanism
Эта опция определяет, позволяют ли инструментам (таким как jmap и jconsole) присоединить к JVM. По умолчанию эта опция отключается. Таким образом, присоединение включается. Использование в качестве примера:
java -XX:+DisableAttachMechanism
-XXLargePageSizeInBytes=n
Эта опция определяет максимальный размер для больших страниц.
-XX:MaxGCPauseMillis=n
Ставит цель в течение максимального времени паузы GC. Это - мягкая цель, и JVM сделает свои максимальные усилия, чтобы достигнуть ее. По умолчанию нет никакого максимального набора значений.
-XX:NewSize
Устанавливает размер молодой генерации (детская). Sames как-Xmnsize.
-XX:ParallelGCThreads=n
Определяет номер потоков GC в параллельных коллекторах.
-XX:PredictedClassLoadCount=n
Эта опция требует, чтобы флаг UnlockExperimentalVMOptions был установлен сначала. Используйте флаг PredictedClassLoadCount, если Ваше приложение загружает много классов, и особенно если class.forName () используется в большой степени. Рекомендуемое значение является числом классов, загруженных как показано в выводе от-verbose:class. Использование в качестве примера:
Печатает многословный вывод от HotSpot динамический компилятор времени выполнения.
-XX: + PrintGCDetails-XX: + PrintGCTimeStamps
Сборка "мусора" печатных изданий выводится наряду с метками времени.
-XX:SoftRefLRUPolicyMSPerMB=0
Этот флаг включает агрессивной обработке руководств по программному обеспечению. Используйте этот флаг, если на GC HotSpot воздействует количество руководства по программному обеспечению.
-XX:TLABSize=n
Локальные буферы выделения потока (TLAB) включаются по умолчанию в HotSpot. HotSpot автоматически размеры TLABs, основанный на образцах выделения.-XX:TLABSize опция позволяет подстраивать размер TLABs.
-XX: + UnlockCommercialFeatures
Используйте этот флаг, чтобы активно разблокировать использование коммерческих функций. Коммерческие функции являются продуктами "Java Oracle SE, Усовершенствованный", или "Java Oracle Комплект SE", как определено в Java Oracle веб-страница Продуктов SE. Если этот флаг не определяется, значение по умолчанию должно выполнить виртуальную машину Java без коммерческих функций, являющихся доступным. Как только им включают, не возможно отключить их использование во времени выполнения.
-XX: + |-UseCompressedOops
Включает сжатым ссылкам в 64-разрядных JVM. Эта опция является истиной по умолчанию.
-XX: + UseConcMarkSweepGC или-XX: + UseG1GC
Эти флаги включают или Параллельному Марку Свипу (CMS) или сборщикам "мусора" G1.
-XX: + UseLargePages
Используйте этот флаг, чтобы включить большой поддержке страницы.
-XX: + UseParallelOldGC
Включает параллельным сборщикам "мусора", которые оптимизируются для пропускной способности и среднее время отклика.
ПРИМЕЧАНИЯ:-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).