Sto usando il runtime per eseguire i comandi del prompt dei comandi dal mio programma Java. Tuttavia, non sono a conoscenza di come posso ottenere l'output restituito dal comando.
Ecco il mio codice:
Runtime rt = Runtime.getRuntime();
String[] commands = {"system.exe", "-send" , argument};
Process proc = rt.exec(commands);
Ho provato a farlo System.out.println(proc);
ma questo non ha restituito nulla. L'esecuzione di quel comando dovrebbe restituire due numeri separati da un punto e virgola. Come posso ottenere questo in una variabile da stampare?
Ecco il codice che sto usando ora:
String[] commands = {"system.exe", "-get t"};
Process proc = rt.exec(commands);
InputStream stdIn = proc.getInputStream();
InputStreamReader isr = new InputStreamReader(stdIn);
BufferedReader br = new BufferedReader(isr);
String line = null;
System.out.println("<OUTPUT>");
while ((line = br.readLine()) != null)
System.out.println(line);
System.out.println("</OUTPUT>");
int exitVal = proc.waitFor();
System.out.println("Process exitValue: " + exitVal);
Ma non sto ottenendo nulla come output, ma quando eseguo quel comando da solo funziona benissimo.
pwd && ls
non è solo eseguendo un unico file, quando lo fai in un guscio esegue sia la/bin/pwd
e/bin/ls
eseguibili. Se vuoi fare cose del genere all'interno di Java devi fare qualcosa del genere{"/bin/bash","-c", "pwd && ls"}
. Probabilmente non hai più la domanda, ma altre persone potrebbero, quindi ho pensato di poter rispondere.