Eseguire un comando direttamente da Java

di Antonio Avolio Commenta

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

Il tuo indirizzo email non verrà pubblicato.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>