Shellskript von Java-Programm auf AIX-Plattform aufrufen

lafou1

Mitglied
Hallo,


ich möchte ein Shellscript von einem Java-Programm auf AIX-Plattforn aufrufen.
das geht leider nicht auf AIX ,obwohl ich den Skript mit dem Befehl ". /shell "in der Konsole aufrufen kann.
wenn ich das vom Programm aufrufe :
Process p = Runtime.getRuntime().exec( ". /shel" ) ;

bekomme ich IOEXception: . not found

hat jemand ein Idee,wie ich das Problem lösen kann
Gruss
 
lafou1 hat gesagt.:
Hallo,


ich möchte ein Shellscript von einem Java-Programm auf AIX-Plattforn aufrufen.
das geht leider nicht auf AIX ,obwohl ich den Skript mit dem Befehl ". /shell "in der Konsole aufrufen kann.
wenn ich das vom Programm aufrufe :
Process p = Runtime.getRuntime().exec( ". /shel" ) ;

bekomme ich IOEXception: . not found

hat jemand ein Idee,wie ich das Problem lösen kann
Gruss

Hallo ist denn das leerzeichen zwischen dem . und /shel absichtlich?
Wenn ja bastle dir doch einen wrapper drum und dann kannst du den source
operator in deinem Wrapper Skript aufrufen....
Etwas so:

Code:
/**
 * @author redwing
 **/

class test{
        public static void main(String[] args) throws Exception{
                Runtime.getRuntime().exec("./shel_wrapper");
        }
}

und shel_wrapper:

Code:
#! /bin/bash
. shel

Gruß

RedWing
 
Hi,
zuerst danke für den Tipp, das ist wirklich gute Idee. ich werde es versuchen.

>> ist denn das leerzeichen zwischen dem . und /shel absichtlich?

Ja das Leerzeichen ist absichtlich,sonst funktioniert das nciht auf unsre AIX-Plattform

Gruss
 
Hi,
Leider geht das nicht, da ich die selbe Problem hab , ich nicht den shel_wrapper mit Runtime.getRuntime().exec("./shel_wrapper"); aufrufen. zwar kommt keine Fehlermeldung aber den Skript wird nicht ausgeführt.

Mit dem direckten Aufruf von shel war genau so.wenn ich kein leerzeichen zwischen den Punkt und bckslash lasse,bekomme keine fehler aber den Skript wird nicht ausgeführt,und wenn ich einen leerzeichen dazwichen lasse,bekomme ich IOException zurück. ". not found". :-(

Gruss
 
Hi.

Wie kommst du darauf das Skript wird nicht ausgeführt Was macht denn dieses Skript? Also woran erkennst du "normalerweise" das das Skript ausgeführt wurde?

Normalerweise ist der '.' in der Shell ein alias für den source Befehl - d.h. das Skript wird direkt in der momentan laufenden Shell ausgeführt.

Was für ein Shell Skript ist es denn eigentlich? Soweit ich weiß ist ja die Standardshell auf AIX die Korn-Shell. Für welche Shell programmierst du denn? Hast du auch ein entsprechendes She-Bang (#!/bin/csh) in der Datei angegeben? Ist die Datei ausführbar?

Wo startest du das Java-Programm? Ist das Shell-Skript in dem Verzeichnis wo du Java startest?

Gruß
 
Zurück