Prima questione: prova.sh ha l'attributo di "eseguibile"?? Sui unix/linux non basta che sia un "normale" file leggibile/scrivibile. Ma dovrebbe essere ok nel tuo caso, altrimenti ti dovrebbe lanciare IOException, se non sbaglio.Originariamente inviato da Daikin
theProcess = Runtime.getRuntime().exec("/home/usr/Scrivania/prova.sh");
l'output non restituisce nessun errore , il percoso è corretto , solo che lo script non viene eseguito
Seconda questione: cosa fa lo script? Si aspetta dello standard-input e/o scrive su standard-output/error? Una lancio del genere non crea alcuna "console", insomma se lo script non lancia applicazioni "grafiche" o qualcosa del genere tu non "vedi" nulla.
Gli stream input/output/error sono rediretti dal runtime Java e li puoi gestire prendendoli con i metodi in Process. E in particolare se il processo fa molto output, allora devi leggerlo, altrimenti per questioni interne di buffering potrebbe bloccarsi il processo lanciato!
Scusa ma non è che ci sia granché da chiarire ..... a exec() come primo elemento va passato il nome di un "eseguibile" ... ovviamente qualunque cosa venga considerata come "eseguibile" dal S.O.Originariamente inviato da Daikin
vorrei un chiarimento su cosa si deve scrivere all'interno dell'exec.....
sia x windows che linux
Su Windows può essere un .exe o un .bat o altro (es. .wsh, .vbs ecc...). Sui linux può essere un eseguibile "nativo" o un file di script della shell marcato come esegubile.

Rispondi quotando