vorrei passare una stringa contenente un comando al prompt di ms-dos. come faccio??
vorrei passare una stringa contenente un comando al prompt di ms-dos. come faccio??
Quindi devi avviare un processo esterno. Ammesso di avere i permessi per farlo, puoi fare:Originariamente inviato da perzem
vorrei passare una stringa contenente un comando al prompt di ms-dos. come faccio??
codice:Runtime.getRuntime().exec("...comando...");
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
ho inserito questo comando ma nn ottengo nessun risultato, forse sta nel fatto che ffmpeg viene esguito solo da riga di comando e nn ha alcuna interfaccia??codice:command="ffmpeg.exe -i C:/Documents and Settings/Andrea/Desktop/Conversione/Temp/"+a+".avi -b 90 C:/Documents and Settings/Andrea/Desktop/Conversione/Temp/"+a+".mp4"; System.out.println(command); try{ Runtime.getRuntime().exec("command"); }catch(Exception e){System.out.println(e);} }
Se hai già una String con il comando, non devi mettere le virgolette!Originariamente inviato da perzem
codice:try{ Runtime.getRuntime().exec("command"); }catch(Exception e){System.out.println(e);}
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
si si hai ragione quello è stato un errore di copiatura, ma la nn esecuzione del comando nn dipende da quello. Ffmpeg viene eseguito nella stessa shell nella quale digito il comando quindi forse è quello il problema che nn esiste la shell dove eseguirlo
prova con:
codice:command="cmd /C ffmpeg.exe -i \"C:/Documents and Settings/Andrea/Desktop/Conversione/Temp/"+a+".avi\" -b 90 \"C:/Documents and Settings/Andrea/Desktop/Conversione/Temp/"+a+".mp4\"";![]()
Purtroppo bisogna imparare che il computer non sbaglia...fa solo quello che gli dici di fare
www.netpolaris.it
Questo è quello che fa per te:
Eseguire comandi di sistema
grazie funzionano entrambi...
vorrei sapere se è possibile monitorare il comando lanciato, ad esempio mettere una progressbar finche il processo nn è finito. Il comando che lancio ha un esecuzione di circa 10 minuti
I metodi exec della classe Runtime restituiscono un oggetto di tipo Process.Originariamente inviato da perzem
vorrei sapere se è possibile monitorare il comando lanciato, ad esempio mettere una progressbar finche il processo nn è finito. Il comando che lancio ha un esecuzione di circa 10 minuti
Tramite questo oggetto, puoi attendere la fine del processo e anche ottenere il codice di stato restituito.
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
codice:public static void Esegui(String command){ Runtime r = Runtime.getRuntime(); try{ Process pr = Runtime.getRuntime().exec(command); int exitVal = pr.waitFor(); System.out.println("Process exitValue: " + exitVal); }catch(Throwable e){ e.printStackTrace(); } }
ho aggiunto queste due righe di codice, ma il processo se prima girava tranquillamente ora si pianta e devo chiuderlo dal task manager e poi mi stampa 1... ma in questo modo non posso metter una progress bar perchè verrebbe eseguita solo dopo la fine del processo...