Sto cercando di eseguire un file .bat e ottenere l'output. Posso correre, ma non riesco a ottenere i risultati in Java:Ottieni l'output dal file BAT utilizzando Java
String cmd = "cmd /c start C:\\workspace\\temp.bat";
Runtime r = Runtime.getRuntime();
Process pr = r.exec(cmd);
BufferedReader stdInput = new BufferedReader(
new InputStreamReader(pr.getInputStream()));
String s ;
while ((s = stdInput.readLine()) != null) {
System.out.println(s);
}
Il risultato è null
. Non ho idea del motivo per cui ho capito. Si noti che sto usando Windows 7.
Leggere (e implementare) * tutte * le raccomandazioni di [Quando Runtime.exec() non lo farà] (http://www.javaworld.com/jw-12-2000/jw-1229-traps.html) . Questo potrebbe risolvere il problema. In caso contrario, dovrebbe fornire maggiori informazioni sul motivo per cui ha fallito. Quindi ignora che si riferisce a 'exec' e costruisce il' Processo' usando un 'ProcessBuilder'. Rompa anche un 'String arg' in' String [] args' per tenere conto degli argomenti che contengono spazi. –