tutorials.de Buch-Aktion 02/2012
ERLEDIGT
NEIN
ANTWORTEN
2
ZUGRIFFE
874
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Stiffler66 Stiffler66 ist offline Rookie
    Registriert seit
    Jan 2010
    Beiträge
    8
    Hallo zusammen,

    habe folgendes Problem ich führe mehrere shell scripte hintereinander aus java heraus aus.
    Ich brauche aus jedem einzelnen shellscript den return value.

    mein Problem ist das ich entweder ein Return value von 127 oder von null bekomme.
    Hoffe einer von den experten kann mir weiter helfen .

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    
    public synchronized int executeFile(File f)
        {
            //....................................
            ProcessBuilder         p=null;
            Process pro = null;
            
            try
                    {
                   if(f.getName().endsWith(".sh"))
            {
     
                    //p = new ProcessBuilder("sh","-c",f.getAbsolutePath());
            //oder
                Runtime rtime=Runtime.getRuntime(f.getAbsolutePath());
     
                        pro = rtime.exec("/bin/bash");
                            pro.start();
                    int retVal=pro.waitFor();
                            System.out.println("return Val = "+ retVal);
            }
                    catch(Exception e){e.printStackTrace();}
            finally
                   {
                         //.......
                   } 
                  //......................................
        }
    Geändert von Stiffler66 (16.02.10 um 10:52 Uhr)
     

  2. #2
    fassy fassy ist offline Mitglied Bronze
    Registriert seit
    Jan 2010
    Beiträge
    42
    Beenden denn die Shellscripte sauber und setzen ihren return code richtig?
     

  3. #3
    Anime-Otaku Anime-Otaku ist offline Mitglied Brillant
    Registriert seit
    Aug 2005
    Ort
    Karlsruhe (Baden-Württemberg)
    Beiträge
    900
    Ich hatte schon einmal den Fall, dass er ewig gebraucht hatte, weil der Inputstream und Outputstream des Prozesses nicht geschlossen war.

    Aber der ProcessBuilder ist der heutige richtige Weg.
     
    Wäre super wenn ihr euren Code in dieser Form einfügt:
    Code java:
    1
    
    System.out.println("Hello World");
    [java]System.out.println("Hello World");[/java]
    Für erledigte Threads dürft ihr den "erledigt"-Button anklicken!
    Über Dank freut sich jeder, der euch geholfen hat - ein Klick auf "Danke" kostet ja nicht mal was
    Blog: http://javaeffective.wordpress.com/

Ähnliche Themen

  1. Runtime.getRuntime().exec
    Von zoulgami im Forum Java
    Antworten: 10
    Letzter Beitrag: 08.06.09, 15:05
  2. SWT + Runtime.getRuntime.exec()
    Von schwarzenegger im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 0
    Letzter Beitrag: 12.12.08, 22:23
  3. Runtime().exec()+leerzeichen
    Von polenben im Forum Java
    Antworten: 4
    Letzter Beitrag: 14.02.08, 21:02
  4. Runtime.getRuntime().exec()
    Von RolandOfGilead im Forum Java
    Antworten: 0
    Letzter Beitrag: 30.06.06, 21:07
  5. Runtime.exec() platformabhaengig?
    Von illaX im Forum Java
    Antworten: 2
    Letzter Beitrag: 21.04.06, 10:13