gpt4 book ai didi

java - Java 中的 Processbuilder 不会抛出子流程异常

转载 作者:行者123 更新时间:2023-12-04 16:10:54 25 4
gpt4 key购买 nike

我正在尝试使用 ProcessBuilder 在 Java 中执行一个 jar 文件。现在,每当 ProcessBuilder 调用的子流程抛出任何异常时,ProcessBuilder 都不会捕获异常并继续执行。

下面是我的代码:

try {
ProcessBuilder pb = new ProcessBuilder("java", "-jar", CommonConstants.jarFileLocation,
fileEntry.getAbsolutePath(), CommonConstants.commonFileLocation);
Process p = pb.start();
}
catch (Exception e) {
e.printStackTrace();
}

catch block 应该在子进程抛出任何异常时打印任何异常。但是,它永远不会。我错过了什么吗?

最佳答案

完成它以在控制台中打印....

我使用 ProcessBuilder inheritIO 方法将子流程标准 I/O 的源和目标设置为与当前 Java 流程相同。

因此修改后的代码...

try {
ProcessBuilder pb = new ProcessBuilder("java", "-jar", CommonConstants.jarFileLocation,
fileEntry.getAbsolutePath(), CommonConstants.commonFileLocation).redirectError(Redirect.INHERIT);
Process p = pb.start();
}
catch (Exception e) {
e.printStackTrace();
}

但是,需要它被catch block 捕获。需要帮助!

关于java - Java 中的 Processbuilder 不会抛出子流程异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41843999/

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