Runtime.getRuntime().exec() will nicht



  • ja, der Titel sagt schon alles.

    egal was ich versuche, der code

    Process p = Runtime.getRuntime().exec("cmd /c dir");
    

    liefert mir nur den Fehler "unreported exception java.io.IOException; must be caugth or declared to be thrown"

    Könnt ihr mir da helfen?

    Gruß
    dit Xvl



  • schreib das in nem Try-Block:

    try
    {
      Process p = Runtime.getRuntime().exec("cmd /c dir"); 	
    }
    catch(IOException e)
    {
    
    }
    


  • catch(IOException e)
    {
         //hier aber die exception behandeln
    }
    


  • Danke für die Hilfe. Nun lässt sich das Programm wenigstens shcon mal starten. Leider tauchen nun wieder neue Probleme auf. Ich will, dass mein Java Programm solange wartet, bis der aufgerufene Prozess beendet ist. Ich hab schon waitFor() aufgerufen, nur dann läuft der Prozess nicht. Soll heißen, er taucht im TaskMananger auf, hat aber keinerlei CPU-Auslastung und terminiert auch nicht. Wenn ich ihn dann per Hand schließe läuft das Javaprogramm wie gewollt weiter. Was kann ich da machen?

    Gruß
    dit Xul



  • Öhm, wenn ich das in der API richtig verstanden habe, macht waitFor() genau das, was du willst...
    Macht denn der Prozess das was du willst, wenn du nicht waitFor() aufrufst?



  • Also ohne WaitFor() passiert folgendes:

    JavaProg ruft Prozess auf -> Prozess läuft (~100% CPU Nutzung), aber das Javaprgramm wartet nicht -> Javaprogramm ist fertig, und der Prozess irgendwann auch

    mit WaitFor():

    Java ruft Prozess auf -> Prozess läuft (0 % CPU Nutzung) -> nix passiert

    beende ich den Prozess, läuft das Javaprogramm weiter.
    Bin da jetzt echt ratlos.

    Gruß
    dit Xul


Anmelden zum Antworten