Salve,
vi descrivo il mio problema.
Se lancio il seguente comando da teminale: ssh localhost "VBoxManage list vms"
ottengo a video la lista di tutte le macchine virtuali installate.
Se invece creo un programmino in Java per eseguire tale comando:
codice:
Runtime run=Runtime.getRuntime();
String command="ssh localhost \"VBoxManage list vms\"";
Process proc=run.exec(command);
InputStreamReader isr=new InputStreamReader(proc.getInputStream());
BufferedReader br=new BufferedReader(isr);
String line="";
int cont=0;
while(cont<linee && (line=br.readLine())!=null){
cont++;
out=out+line+"\n";
}
La stringa out risulta vuota e sicuramente non è colpa del codice perchè se sostituisco
codice:
String command="ssh localhost \"whoami\"";
mi restituisce la stringa del nome utente.
Allora ho provato a passare all'interno dell'InputStreamReader llo stream d'errore getErrorStream() relativo al processo in esecuzione:
codice:
InputStreamReader isr=new InputStreamReader(proc.getErrorStream());
e il println della stringa out mi da:
bash: VBoxManage list vms: comando non trovato
il che mi sembra strano poichè da terminale non dava alcun errore
P.S: Ho provato anche inserendo il path completo di VBoxManage:
ssh localhost "/usr/bin/VBoxManage list vms"
su terminale va benissimo, con Java no.