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

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 !