ProcessBuilder 是jdk1.5以後的類,在這以前一直是直接用process。
具體區別和聯繫可以查看下方博客
https://honeypps.com/java/process-builder-quick-start/
該方法調用的是C#開發的一個exe,dll用來生成PDF文件,我們需要給該方法傳遞參數,我這裏path傳遞的是一個字符串,傳遞的信息是看你的exe需要。
public boolean generatePdfFromExe(String path) {
String exePath="E:\\ITextSharpTest\\ITextSharpTest.exe";
BufferedReader br=null;
BufferedReader brError=null;
try {
//執行exe ,exePath可以爲字符串(exe存放路徑)也可爲數組
log.info("執行exe文件!");
ProcessBuilder pr= new ProcessBuilder(exePath,path);
process p=pr.start();
String line = null;
br = new BufferedReader(new InputStreamReader(p.getInputStream()));
brError = new BufferedReader(new InputStreamReader(p.getErrorStream()));
log.info("開始獲取子進程輸出流信息和錯誤流信息");
while ((line = br.readLine()) != null || (line = brError.readLine()) != null) {
//輸出exe輸出的信息以及錯誤信息
System.out.println(line);
}
log.info("調用exe方法完成");
} catch (Exception e) {
e.printStackTrace();
log.info("調用exe生成PDF過程出現錯誤");
log.info("錯誤信息爲:"+e.getMessage());
return false;
} finally {
if (br != null) {
try {
br.close();
log.info("釋放輸出流!");
} catch (Exception e) {
e.printStackTrace();
}
}
}
log.info("調用exe生成PDF成功!");
return true;
}