stellinaInformatica
13-05-2011, 16:39
Ciao a tutti, sto combattendo da ieri con una situazione molto semplice ma che mi sta dando problemi... dunque, ho bisogno che da una classe java mi venga aperta una finestra di comando e mi venga eseguito un programmino esterno, nel mio caso dlv.
A dlv devo passare un file che verrā eseguito e per cui io voglio registrare l'output su un file.
Mettendo momentaneamente da parte la classe Java, se io apro la shell, vado in c, ed eseguo il seguente comando:
dlv.exe prova.txt
il risultato č questo:
{q1("Miller",38000,"New York"), q1("Koch",2000000,"Atlanta"), q1("Nguyen",35000,
"New York"), q1("Gruber",32000,"Atlanta"), q1b("Miller",38000,"New York"), q1b("
Koch",2000000,"Atlanta"), q1b("Nguyen",35000,"New York"), q1b("Gruber",32000,"At
lanta")}
ora vi mostro il codice che ho scritto in java per lanciare la shell e lo stesso comando scritto sopra:
String command = "cmd /c start dlv.exe -nofacts prova.txt ";
Runtime run= Runtime.getRuntime();
File fpath;
try {
fpath = new File( "C:");
Process processo = run.exec(command , null, fpath);
String line = "";
BufferedReader input = new BufferedReader(new InputStreamReader(processo.getInputStream()));
while ((line = input.readLine()) != null) {
System.out.println(line);
}
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
in questo modo io mi aspetto che mi venga eseguito il tutto e mi venga stampato il risultato (linea dopo linea) sulla console. in realtā il mio obiettivo č di memorizzarlo su un file a parte, ma non riuscendoci sto facendo le cose passo dopo passo perchč sembra che non riesca proprio a catturare il risultato... dove sbaglio??
PS. dimenticavo di dirvi che quando lancio la classe java, la shell viene aperta ma si richiude in un secondo automaticamente.
Grazie a tutti !
A dlv devo passare un file che verrā eseguito e per cui io voglio registrare l'output su un file.
Mettendo momentaneamente da parte la classe Java, se io apro la shell, vado in c, ed eseguo il seguente comando:
dlv.exe prova.txt
il risultato č questo:
{q1("Miller",38000,"New York"), q1("Koch",2000000,"Atlanta"), q1("Nguyen",35000,
"New York"), q1("Gruber",32000,"Atlanta"), q1b("Miller",38000,"New York"), q1b("
Koch",2000000,"Atlanta"), q1b("Nguyen",35000,"New York"), q1b("Gruber",32000,"At
lanta")}
ora vi mostro il codice che ho scritto in java per lanciare la shell e lo stesso comando scritto sopra:
String command = "cmd /c start dlv.exe -nofacts prova.txt ";
Runtime run= Runtime.getRuntime();
File fpath;
try {
fpath = new File( "C:");
Process processo = run.exec(command , null, fpath);
String line = "";
BufferedReader input = new BufferedReader(new InputStreamReader(processo.getInputStream()));
while ((line = input.readLine()) != null) {
System.out.println(line);
}
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
in questo modo io mi aspetto che mi venga eseguito il tutto e mi venga stampato il risultato (linea dopo linea) sulla console. in realtā il mio obiettivo č di memorizzarlo su un file a parte, ma non riuscendoci sto facendo le cose passo dopo passo perchč sembra che non riesca proprio a catturare il risultato... dove sbaglio??
PS. dimenticavo di dirvi che quando lancio la classe java, la shell viene aperta ma si richiude in un secondo automaticamente.
Grazie a tutti !