Dies ist ein Problem, das beim Ausführen des Inhalts des obigen Artikels aufgetreten ist.
Als ich an "OutputStream (= stdin)" von "Process" schrieb, endete es nicht, selbst wenn ich mit einem Zeitlimit "waitFor" war.
Problematischer Code
//Ausnahme versuchen-Vorausgesetzt, der Fang erfolgt draußen
Process process = new ProcessBuilder(commands).start();
//Schreiben Sie an stdin
OutputStream os = process.getOutputStream();
os.write(multipartFile.getBytes());
boolean result = process.waitFor(5, TimeUnit.SECONDS);
Ich habe versucht, "OutputStream" zu schließen, und es wurde gelöst. Ich denke, das lag wahrscheinlich daran, dass ich endlos auf das Schreiben warten musste.
Nach dem Umgang
//Ausnahme versuchen-Vorausgesetzt, der Fang erfolgt draußen
Process process = new ProcessBuilder(commands).start();
//Schreiben Sie an stdin
try (OutputStream os = process.getOutputStream()) {
os.write(multipartFile.getBytes());
}
boolean result = process.waitFor(5, TimeUnit.SECONDS);
Recommended Posts