java 如何从 java 中捕获退出代码?

how can java catch exit code from inside java?

我的 java 代码 运行 是抛出退出代码的主要方法。

我怎样才能捕捉到退出代码而不停止 运行时间?

        ConfigValidator.main(new String[] {"-dirs", SdkServiceConfig.s.PROPERTIES_FILE_PATH});

我想用

        ProcessBuilder builder = new ProcessBuilder(commands);
        Process process = builder.start();
        int waitFor = process.waitFor();
        int a = process.exitCode()

但是我如何 运行 将其转换为 运行 java 代码?

我无法更改 "main" 方法中的代码

请尝试使用 Thread.sleep() 方法来避免程序退出,但我不确定它是否适合您。可能您需要通过系统输入或 smth 中断应用程序的执行。像这样。

java 代码不会抛出退出代码。

因为exit code是一个整数,不能抛出整数,只能抛出异常。

java 代码 退出 带有退出代码。

(我希望我可以说 java 代码 returns 一个退出代码,但不幸的是, java 语言决定使用 main() 函数 return void 而不是退出代码,这让事情变得有点困难。)

以下 Whosebug 答案建议使用安全管理器来防止调用 System.exit()。因此,尝试调用 System.exit() 将导致 SecurityException,然后您可以从调用 main() 函数的地方捕获该异常。

计算器溢出:Java: How to test methods that call System.exit()?

当然,正确的做事方式是重组 main(),这样它就不会调用 System.exit(),这样您就不必做那样的 hacky 事情。