# Shell Script ausführen unter Java



## skip2mylou (6. Nov 2008)

Guten Morgen!

sitz hier an nem echt blöden Problem...

möchte mit Java ein Shell Script ausführen...hab das auch schon paar mal gemacht mit anderen Dateien...
doch dieses mal will der die Datei einfach nicht ausführen, obwohl per kommandozeile der aufruf einwandfrei funktioniert!

hier mal der codeabschnitt:

```
try 
{
    boolean exists = new File("/home/user/print/ftp_print_protokoll").exists();
    boolean read = new File("/home/user/print/ftp_print_protokoll").canRead();
    boolean write = new File("/home/user/print/ftp_print_protokoll").canWrite();
    boolean test = new File ("/home/user/print/ftp_print_protokoll").isFile();
    String aCmdStr ="/home/user/print/ftp_print_protokoll normal";
    Runtime.getRuntime().exec(aCmdStr);
    System.out.println("File " + aCmdStr + " exists = " + exists);
    System.out.println("can read File " + aCmdStr + " = " + read);
    System.out.println("can write File " + aCmdStr + " = " + write);
    System.out.println("is file = " + test);
} catch (IOException e) {
    // TODO Auto-generated catch block
    System.out.println("Fehler beim ausführen der Datei...");
    e.printStackTrace();
}
```

Also der aCmdStr lässt sich so in der Konsole ausführen, nur halt nicht per Java Code...

Der wirft mir auch keine Exception aus und die einzelnen ausgaben, liefern auch alle ein true!

Hoffe mir kann da jemand weiterhelfen!

vielen dank schonmal!


----------



## skip2mylou (6. Nov 2008)

kann mir da echt keiner weiterhelfen? :-(


----------



## FArt (6. Nov 2008)

Es wird eine Fehlermeldung kommen...entweder in Form einer Exception oder auf STDOUT bzw. STDERR. Schau dir die an, und du weißt bescheid.


----------



## tfa (6. Nov 2008)

Probier's mal mit dem ProcessBuilder.


----------



## skip2mylou (6. Nov 2008)

@ FArt:

Es kommt keine Fehlermeldung, bzw es wird keine Exception geworfen!
Der Aufruf an sich müsste ja eigentlich auch so korrekt sein...


@ tfa:

Was bewirkt der ProcessBuilder denn im Vergleich zu meiner Variante?


----------



## skip2mylou (6. Nov 2008)

Problem gelöst 

Ursache war, dass ich explizit ne shell angeben musste beim Befehlsaufruf...

sprich:

String aCmdStr ="csh /home/user/print/ftp_print_protokoll test";
Runtime.getRuntime().exec(aCmdStr).waitFor();


----------

