p.wait() bremst aus

Status
Nicht offen für weitere Antworten.

caruso_nix

Mitglied
Hallo,
ich möchte eine externe Datei ausführen lassen. Dazu verwende ich folgendes:

Code:
try 
{
  Process proc = Runtime.getRuntime().exec(command + file); 
  proc.waitFor();

  BufferedReader in = new BufferedReader(new InputStreamReader(proc.getInputStream())); 
  String line; 
  StringBuffer sb = new StringBuffer();
		        
  while((line = in.readLine()) != null)  
    sb.append(line + System.getProperty("line.separator"));

  // Ausgabe in eine Datei schreiben	
  doWriteTestExec(threadName, sb.toString());
  in.close();
}
catch (InterruptedException e) 
{			
  proc.destroy();
}

das Problem ist, dass das Programm wartet. Kommentiere ich das "proc.waitFor();" aus, funktioniert alles! Ganz komische Sache!!

caruso.
 
wie der Befehlt wait() scho sagt, warted er. und zwar solange bis jemand notify() aufruft. also wo ist das problem? wieso hast du denn dieses waitFor eingebaut?
 
Na, der wartet solange bis die aufrufende Prozedur beendet ist 😉

API lesen hilft halt manchmal und net sinnlos source kopieren :bae:
 
ich brauche das waitFor() zum killen des Prozesses, falls der nicht ordnungsgemäß ausgeführt werden kann. Das regel ich mit einem "zeitdispatcher".

Ich teste mit einer Datei, wo nur ein "dir" drin steht. Der Prozess ist also eigentlich recht schnell zu ende.
 
multithreading?

Code:
new Thread()
{
public void run()
{
proc.waitFor();
}};

dann musst du aber deine Zeitabfrage statistik auch in den gleichen Thread packen!
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben