Prozess mit Argument starten

th0r

Grünschnabel
Hallo Leute,

ich habe folgendes Problem. Ich möchte ein Pragramm mittels JAVA ausführen und muss dazu noch ein Argument mitgeben. Das Ausführen des anderen Programms an sich funktioniert schonmal. Allerdings stehe ich irgendwie auf dem Schlauch wie ich dort ein Startargument übergeben soll
Code:
public static void main(String[] args) throws Exception {
        ProcessBuilder pb = new ProcessBuilder("C:/Programme/SPSS/spssprod.exe -r SPSSJob1.spp");   //ohne -r SPSSJob1.spp läufts!
        Process process = pb.start();
    }
}
Ich bekommen dann immer den Fehler:Exception in thread "main" java.io.IOException: Cannot run program "-r SPSSJob1.spp": CreateProcess error=2, Das System kann die angegebene Datei nicht finden

Wenn ich den Befehl (spssprod.exe -r SPSSJob1.spp) in der Shell eingebe funktioniert das einwandfrei.

Hat von euch jemand eine Idee wie ich das Argument übergeben kann?
 
Zuletzt bearbeitet:
Mit JAVA 6 gehts ja auch so, allerdings klappts auch dort nicht mit einem übergebenen Argument :confused:

Code:
try 
{ 
  Desktop.getDesktop().browse( new URI("http://java-tutor.com/") ); 
  Desktop.getDesktop().open( new File("S:/Public.Comp.Lang.Java/3d/Java3D.pdf") ); 
} 
catch ( Exception /* IOException, URISyntaxException */ e ) 
{ 
  e.printStackTrace(); 
}
 
Java:
public static void main(String[] args) throws Exception {
        ProcessBuilder pb = new ProcessBuilder("C:/Programme/SPSS/spssprod.exe","-r SPSSJob1.spp");
        Process process = pb.start();
    }
}

Erst das Programm und dann als weitere Argumente das Programm.
 
Eigentlich geht das doch schon im Konstruktor:
Code:
ProcessBuilder pb = new ProcessBuilder("C:/Programme/SPSS/spssprod.exe", "-r", "SPSSJob1.spp"); // das Array-Boxing wird automatisch vorgenommen
 
Zurück