PDA

Visualizza la versione completa : [JAVA] IOException durante esecuzione comandi DOS


Aki
04-11-2005, 12:08
Ave populus,
dovendo eseguire da java dei comandi dos, ho scritto questo:

Runtime r = Runtime.getRuntime();
try {
Process p = r.exec("dir > lista.txt");
} catch (IOException x) {
System.out.println("Errore di input output");
System.out.println(x.getCause());
System.out.println(x.getMessage());
System.out.println(x.getStackTrace());
}

ma cos non v, mi restituisce una eccezione di input/output:


Errore di input output
null
CreateProcess: dir > lista.txt error=2
[Ljava.lang.StackTraceElement;@1f3ce5c

cosa sbaglio???

LeleFT
04-11-2005, 12:27
Credo che sia perch DIR un comando interno, quindi non riesce a creare il processo, quindi il valore di p diventa nullo.

Prova cos:


Runtime r = Runtime.getRuntime();
try {
Process p = r.exec("CMD /C dir > lista.txt");
} catch (IOException x) {
System.out.println("Errore di input output");
System.out.println(x.getCause());
System.out.println(x.getMessage());
System.out.println(x.getStackTrace());
}

Aki
04-11-2005, 13:39
Originariamente inviato da LeleFT
Credo che sia perch DIR un comando interno, quindi non riesce a creare il processo, quindi il valore di p diventa nullo.

Prova cos:


Runtime r = Runtime.getRuntime();
try {
Process p = r.exec("CMD /C dir > lista.txt");
} catch (IOException x) {
System.out.println("Errore di input output");
System.out.println(x.getCause());
System.out.println(x.getMessage());
System.out.println(x.getStackTrace());
}


ho fatto cos come hai detto e non d nessun errore e non solleva alcuna eccezione, ma non v, non scrive nessun file lista.txt :dh:

------- EDIT -------
se per metto cos:

Process p = r.exec("notepad");
mi apre notepad

Aki
04-11-2005, 14:04
risolto mettendo:

Process p = r.exec("CMD /C start dir > lista.txt");

LeleFT
04-11-2005, 14:05
A me funziona: mi ha creato un file lista.txt nella cartella in cui ho fatto girare il programma. Se stai usando qualche IDE per la compilazione/esecuzione, ti consiglio di provare direttamente dal prompt dei comandi.


Ciao. :ciauz:

Aki
04-11-2005, 14:32
Originariamente inviato da LeleFT
A me funziona: mi ha creato un file lista.txt nella cartella in cui ho fatto girare il programma. Se stai usando qualche IDE per la compilazione/esecuzione, ti consiglio di provare direttamente dal prompt dei comandi.


Ciao. :ciauz:
non uso nessun ide, cmq s strano, ma senza dare start non v nulla

:ciauz:

Loading