gpt4 book ai didi

java - java如何捕获java内部的退出代码?

转载 作者:太空宇宙 更新时间:2023-11-04 11:24:33 26 4
gpt4 key购买 nike

我的 java 代码运行一个抛出退出代码的 main 方法。

如何捕获退出代码而不停止运行时?

        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”方法内的代码

最佳答案

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

这是因为退出代码是一个整数,你不能抛出一个整数,只能抛出一个异常。

Java 代码退出并带有退出代码。

(我希望我可以说 java 代码返回退出代码,但不幸的是,java 语言的设计者决定让 main() 函数返回 void 而不是退出代码,这让事情变得有点困难。)

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

Stackoverflow:Java: How to test methods that call System.exit()?

但当然,正确的做法是重构 main(),使其不会调用 System.exit(),这样您就不必做类似的黑客事情。

关于java - java如何捕获java内部的退出代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44524636/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com