Как получить статус выхода программы Java в пакетном файле Windows

JFileChooser j = new JFileChooser();
j.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
Integer opt = j.showSaveDialog(this);
25
задан Jon Seigel 21 March 2010 в 06:58
поделиться

5 ответов

Используйте % ERRORLEVEL% . Вам не нравится четкость и лаконичность командных файлов? :)

27
ответ дан 28 November 2019 в 18:03
поделиться

Что-то вроде:

java Foo
set exitcode=%ERRORLEVEL%
echo %exitcode%

Важно сделать это абсолютной следующей строкой командного файла, чтобы избежать перезаписи уровня ошибки :)

Обратите внимание, что если вы используете

IF ERRORLEVEL number

] «особенность» командных файлов, это означает, что «если уровень ошибки больше или равен число » - это не основано на равенстве. Меня это уже укусило :)

27
ответ дан 28 November 2019 в 18:03
поделиться

У Раймонда Чена есть хорошая запись в блоге под названием ERRORLEVEL не% ERRORLEVEL% . Стоит проверить.

Также стоит отметить, что команда REM, которую большинство людей считают комментариями, на самом деле не является. Команда REM - это команда nop, которая всегда завершается успешно . После REM уровень ошибки всегда равен 0. Так что

willalwaysfail.bat
REM unless you insert a comment after it
if errorlevel 1 goto fail

никогда не выйдет из строя ...

19
ответ дан 28 November 2019 в 18:03
поделиться

Большинство обычных операций с внешними командами возвращают ERRORLEVEL 0, и это обычно (но НЕ всегда) означает, что ошибок не было:

c:\> dir
...
c:\> echo %ERRORLEVEL%
0
ответ дан 28 November 2019 в 18:03
поделиться

в основном отвечая на вопрос bulgar , но дополняя другие ответы:

для работы% ERRORLEVEL% вам необходимо иметь расширения команд активированы в Windows (по умолчанию).
Для одного сеанса:

cmd /E:on

или постоянно в реестре

 HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\EnableExtensions = 0x01

, подробнее:

cmd /?

[]]

1
ответ дан 28 November 2019 в 18:03
поделиться