我從Java運行wkhtmltopdf。我創建了一個流程,但是這個流程似乎是懸而未決的,因爲它會一再地重複控制檯,也會在任務管理器中重複。wkhtmltopdf進程在Java中掛起
這是我如何運行wkhtmltopdf:
String command = applicationLocation + "wkhtmltopdf.exe -O Landscape " + reqURL + "?" + reqQuery + " c:/PDF/" + folderName + "/" + id + "/" + folderName + ".pdf";
Process p = Runtime.getRuntime().exec(command);
我怎樣才能「消滅」的過程中,工作已經做了之後?
這並沒有爲我工作,過程中從未停止過和代碼從未進入while循環兩種:
ProcessBuilder pb = new ProcessBuilder(application, htmlFilePath, pdfFilePath);
Process process = pb.start();
BufferedReader errStreamReader = new BufferedReader(new InputStreamReader(process.getErrorStream()));
System.out.println("read errstreamreader");
//not "process.getInputStream()"
String line = null;
line = errStreamReader.readLine();
while(line != null) {
System.out.println(line);
line = errStreamReader.readLine();
if(line.equals("Done")) {
process.destroy();
System.out.println("destroyed process");
}
}
你期待一個錯誤?如果你沒有收到錯誤信息,你將永遠不會破壞這個過程。 – JavaKungFu 2012-07-11 14:28:18
wkhtmltopdf默認寫入stderr。 – doonot 2012-07-11 14:28:59