Home » Programmazione » Java » Eseguire un comando direttamente da Java

Eseguire un comando direttamente da Java

Java mette a disposizione il metodo exec() appartenente alla classe Runtime per avviare i programmi all’interno di un’applicazione Java, a questo scopo viene istanziato un oggetto Process che avrà il compito di eseguire il comando desiderato.
Oltre a lanciare il processo, si avrà la possibilità di eseguire il comando desiderato parallelamente alla nostra applicazione, oppure attendere che il programma lanciato termini la sua esecuzione o in fine fermare l’esecuzione del programma stesso.

Supponiamo di voler recuperare e stampare a video le informazioni relative alla nostra configurazione di rete, per far ciò possiamo comodamente richiamare il comando ipconfig di Windows. Ecco il listato del nostro programma:


[sourcecode language=’java’]
String risultato = “”;
String comando = “ipconfig”;
try {
Runtime r = Runtime.getRuntime();
Process p = r.exec(comando);

BufferedReader in = new BufferedReader(new
InputStreamReader(p.getInputStream()));
String inputLine;
while ((inputLine = in.readLine()) != null) {
System.out.println(inputLine);
risultato += inputLine;
}
in.close();

}//try
catch (IOException e) {
System.out.println(e);
}
[/sourcecode]

I protagonisti principali di questo listato sono gli oggetti Runtime e Process (righe 04 e 05), mentre dalla riga 07 alla 14 viene catturato e gestito l’output del comando, la cui spiegazione esula dai compiti di questo post. Con Process p = r.exec(comando) a cui passiamo il comando richiediamo di eseguire la direttiva da noi richiesta.

Lascia un commento