[Risolto] Eseguire uno shell script
[Risolto] Eseguire uno shell script
Ho letto un paio di discussioni sul forum ma non ho trovato nulla che risolvesse il mio problema. Devo lanciare un file .sh dando comando java. Questo .sh cattura i dati sulla porta usb e li mette in un file txt. Ora, quando lancio da terminale ubuntu "sudo ./file.sh" tutto funziona, il file txt si crea e viene caricato di dati. Quando lo lancio con codice Java, usando il comando:
try
{
Runtime.getRuntime().exec("/bin/bash ./file.sh");
System.out.println("Script successfully launched");
}
catch(IOException e) {
e.printStackTrace();
}
Si crea il file txt e poi non succede più nulla come se lo script si fermasse. Come posso risolvere?
try
{
Runtime.getRuntime().exec("/bin/bash ./file.sh");
System.out.println("Script successfully launched");
}
catch(IOException e) {
e.printStackTrace();
}
Si crea il file txt e poi non succede più nulla come se lo script si fermasse. Come posso risolvere?
Ultima modifica di biomaucal il sabato 7 maggio 2016, 16:57, modificato 1 volta in totale.
Re: [JAVA] Eseguire uno shell script
Lancia il comando java con sudo
Prima di aprire una discussione leggi le Guide, poi vedi se c'è un HowTo nel Wiki e fai una ricerca nel Forum!
Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
Re: [JAVA] Eseguire uno shell script
Provato in questi modi
Runtime.getRuntime().exec("/bin/bash sudo ./file.sh");
Runtime.getRuntime().exec("sudo /bin/bash ./file.sh");
Ma non funziona
Runtime.getRuntime().exec("/bin/bash sudo ./file.sh");
Runtime.getRuntime().exec("sudo /bin/bash ./file.sh");
Ma non funziona
Re: [JAVA] Eseguire uno shell script
io intendevo:
Codice: Seleziona tutto
sudo java ClassDaLanciarePrima di aprire una discussione leggi le Guide, poi vedi se c'è un HowTo nel Wiki e fai una ricerca nel Forum!
Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
Re: [JAVA] Eseguire uno shell script
Niente, non funziona.
Re: [JAVA] Eseguire uno shell script
Prova:
file.sh deve essere nella stessa cartella da cui esegui il comando
Codice: Seleziona tutto
Runtime.getRuntime().exec(new String[]{"/bin/bash","file.sh"});Prima di aprire una discussione leggi le Guide, poi vedi se c'è un HowTo nel Wiki e fai una ricerca nel Forum!
Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
Re: [JAVA] Eseguire uno shell script
In pratica lo script si avvia e il programma funziona regolarmente solo se avvio eclipse da terminale come amministratore. Non posso risolvere in nessun modo questa cosa? non posso farlo diventare durante l'esecuzione amministratore?
Re: [JAVA] Eseguire uno shell script
In teoria se funziona con eclipse avviato da amministratore dovrebbe andare avviando direttamente con sudo (con lo stesso comando usato da eclipse)
Per farlo diventare amministratore dovresti inserire la password.
Per farlo diventare amministratore dovresti inserire la password.
Prima di aprire una discussione leggi le Guide, poi vedi se c'è un HowTo nel Wiki e fai una ricerca nel Forum!
Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
Re: [JAVA] Eseguire uno shell script
Ho risolto in questo modo:
Public class RxTx {
public static void main(String[] args) throws IOException {
System.out.println("Run the script to read a stream");
String[] cmd = {"/bin/bash","-c","echo \"sudo\"| sudo -S /..path../script.sh"};
Process pb = Runtime.getRuntime().exec(cmd);
String line;
BufferedReader input = new BufferedReader(new InputStreamReader(pb.getInputStream()));
while ((line = input.readLine()) == null) {
System.out.println("No input stream");
break;
}
input.close();
try {
System.out.println("Waiting 2 minutes...");
Ora, se il terminale usb non è connesso,entra nel while e il programma completa la sua esecuzione.
Se invece la usb è connessa, il file.txt si scrive e si riempie.
Ora, come faccio a interrompere, dopo un certo tempo l'esecuzione dello script(quindi bloccare Runtime.getRuntime) e passare a try?
Public class RxTx {
public static void main(String[] args) throws IOException {
System.out.println("Run the script to read a stream");
String[] cmd = {"/bin/bash","-c","echo \"sudo\"| sudo -S /..path../script.sh"};
Process pb = Runtime.getRuntime().exec(cmd);
String line;
BufferedReader input = new BufferedReader(new InputStreamReader(pb.getInputStream()));
while ((line = input.readLine()) == null) {
System.out.println("No input stream");
break;
}
input.close();
try {
System.out.println("Waiting 2 minutes...");
Ora, se il terminale usb non è connesso,entra nel while e il programma completa la sua esecuzione.
Se invece la usb è connessa, il file.txt si scrive e si riempie.
Ora, come faccio a interrompere, dopo un certo tempo l'esecuzione dello script(quindi bloccare Runtime.getRuntime) e passare a try?
Chi c’è in linea
Visualizzano questa sezione: 0 utenti iscritti e 4 ospiti
