Allora... non so a voi, ma personalmente, mi è capitato diverse volte di dover interagire col sistema operativo, catturarne l'output, etc... insomma, se ad esempio, sono sotto linux, e lancio un comando del tipo "ls", sulla consolle vedrò l'output... e se questo comando lo volessi lanciare da un software scritto in java, e volessi catturarne l'output?
Semplice
Scriveremo un programmino che ci dii in output, tramite java, il risultato di ls -l seguito sulla directory corrente in cui ci troviamo
(NB, se lavoriamo sotto windows, cambiare la stringa comando nel seguente modo)
//String comando [] = new String("DIR /p");
try{
//scriviamo il comando che vogliamo lanciare... se siamo sotto linux (perchè SIAMO sotto linux, vero?)
String comando[ ] = new String("/bin/sh","-c","ls -l");
//creo il processo e gli faccio eseguire il comando
Process processo = Runtime.getRuntime().exec(comando);
//creo il bufferedReader, che mi prenderà l'InputStream del processo creato prima
BufferedReader br = new BufferedReader(new InputStreamReader(processo.getInputStream()));
String linea = "";
//fin quando il bufferedReader continua a leggere, gli faccio stampare l'output. Se la stringa è uguale a null (attenzione... null è diverso da "" o da "\n"), allora continua a leggere l'output...
while((linea = br.readLine())!=null)
System.out.println(linea);
}
catch(Exception e){
e.printStackTrace();
}
Spero che vi sia utile... a presto