gpt4 book ai didi

java - 检查main的退出状态

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:47:15 25 4
gpt4 key购买 nike

我正在从我的 Java 代码中调用包含在同一文件夹中的 .class 的主类。那个 main 是无效的,我想通过检查它的退出状态来检查它是否成功:

    ...
String[] arguments = new String[]{"a", "b"};
AnotherClass.main(arguments);
...

任何关于如何成为 AnotherClass.main(arguments) 的想法;不返回任何东西?

谢谢。

最佳答案

更好的主意 - 不要尝试调用 main 方法,而是在另一个类中创建一个名为 testMain() 的方法,它与 main 做同样的事情,除了它返回退出代码而不是退出。


在该 main 方法中调用的 System.exit() 将关闭您的整个程序。您想在另一个线程中运行另一个 main 并找到该线程的退出代码。

构建另一个程序(将 jar 命名为 AnotherClass.jar),将 jar 添加到您的路径并尝试以下操作:

int exitCode;
try {
Process process = Runtime.getRuntime().exec("java AnotherClass.jar",new String[]{"arg1","arg2"});
exitCode = process.waitFor();
System.out.println(exitCode);
} catch (IOException e) {
System.out.println("IO Error: " + e);
} catch (InterruptedException e) {
System.out.println("Inturrupted: " + e);
}

编辑:以下根本不起作用; System.exit() 杀死所有线程。

此代码将在新线程中运行另一个 main 方法,当它退出时不会损害您当前的程序。

Thread anotherProgram = new Thread(new Runnable() {
@Override
public void run() {
AnotherClass.main(new String[]{"foo","bar"});
}
});
anotherProgram.start();

关于java - 检查main的退出状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22789757/

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