ProcessBuilder processBuilder = new ProcessBuilder(file.getAbsolutePath());
processBuilder.directory(file.getParentFile());
try {
processBuilder.start();
System.exit(0);
} catch(IOException ex) {
ex.printStackTrace();
}
当我使用C://:时
java.io.io异常:无法运行程序"C:\Users\User\Documents\NetBeansProjects\UsefulTul":CreateProcess错误=5,存取被拒。
当我使用C://sdfsdsfjsdi时:
java.io.io异常:无法运行程序"c:\sdfsdsfjsdi"(在目录"c:\"中(:CreateProcess错误=2,系統找不到指定的檔案。
如何在Java 中捕获error=<code>
您可以使用regex从消息中获取期望的值。
try {
processBuilder.start();
System.exit(0);
} catch(IOException ex) {
String msg = ex.getMessage();
Pattern pattern = Pattern.compile(".*(error=.*),.*");
Matcher matcher = pattern.matcher(ex.getMessage());
if (matcher.find()) {
System.out.println("Result: " + matcher.group(1));
}
}
输出为:
Result: error=2
Process finished with exit code 0
注意:在我的运行中,error=2
是由ex.getMessage()
给出的消息。在你的情况下可能会有所不同。