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