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:
il risultato è questo:codice:dlv.exe prova.txt
ora vi mostro il codice che ho scritto in java per lanciare la shell e lo stesso comando scritto sopra:codice:{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")}
codice: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 !![]()

Rispondi quotando

