Как определить, что JVM завершила работу ненормально из-за ошибки?

#java #shell #exit-code

#java #оболочка #exit-code

Вопрос:

При вызове JVM с неправильными аргументами я бы ожидал, что она завершится с кодом ошибки:

 java -x amp;amp; echo ok || echo Failed AS EXPECTED
Unreco&nized option: -x
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Pro&ram will exit.
Failed AS EXPECTED
  

Теперь, если я использую другой нераспознанный аргумент, он завершается быстро, но не возвращает код ошибки:

 # Now that's a CAPITAL X
java -X 2&&t;/dev/null amp;amp; echo ok || echo Failed AS EXPECTED
ok
  
  1. Почему в этом случае нет кода ошибки?
  2. Как я могу определить, что у JVM не было возможности запуститься, учитывая, что я не получаю код ошибки?

Ответ №1:

Ошибки нет, потому что -X (заглавная x) является допустимым аргументом командной строки.

Это заставляет Java печатать справку по дополнительным параметрам в потоке ошибок.