Java中的Processbuilder不会抛出子流程exception

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

以下是我的代码:

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

catch块假设在子进程抛出任何exception时打印任何exception。 然而,它永远不会。 我错过了什么吗?

完成它在控制台打印….

我使用了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块捕获。 需要帮忙!