如何在Windows批处理文件中获取Java程序的退出状态

pug*_*arx 25 java windows batch-file exit-code

类似于$?在Linux中,有没有办法在Windows批处理文件(.bat)中获取程序的退出状态?
例如,程序System.exit(0)成功执行,System.exit(1)如果失败,如何将这些退出值存储在.bat文件中?

Mat*_*hen 27

使用%ERRORLEVEL%.难道你不喜欢批处理文件的清晰和简洁吗?:)


Jon*_*eet 27

就像是:

java Foo
set exitcode=%ERRORLEVEL%
echo %exitcode%
Run Code Online (Sandbox Code Playgroud)

将此作为批处理文件的绝对下一行非常重要,以避免错误级别被覆盖:)

请注意,如果您使用

IF ERRORLEVEL number
Run Code Online (Sandbox Code Playgroud)

批处理文件的"特征",表示"如果错误级别大于或等于number" - 它不是基于相等性.我之前被我咬过了:)


Jes*_*erE 19

Raymond Chen有一篇名为ERRORLEVEL的好博文,不是%ERRORLEVEL%.值得一试.

另外值得注意的是,REM命令被大多数人认为是评论,实际上并非如此.REM命令是一个总是成功的nop命令.在REM之后,错误级别始终为0.因此

willalwaysfail.bat
REM unless you insert a comment after it
if errorlevel 1 goto fail
Run Code Online (Sandbox Code Playgroud)

永远不会失败......