# externes Programm mit Parameter öffnen



## Guest (4. Jan 2007)

Hallo Leute!

Wie in aller Welt bringe ich Java dazu, ein externes Programm mit Parameter zu öffnen, z.B.:

"C:\Programme\gnuplot\bin\wgnuplot.exe sinus.dat"

Sitze seit 8 Stunden dran und hab alles ausprobiert - Runtime.getRuntime().exec() führt nur popelige DOS-Progrämmchen aus, die im PATH stehen, z.B. dir, cmd und so'n Zeug (deshalb wird das wahrscheinlich auch überall als Beispiel genommen, weil es das einzige ist, was funktioniert).

Wie bekomme ich nun eine ganz simple Exe mit Parameter (ohne funktioniert) in Java zum laufen?????


----------



## Gast (4. Jan 2007)

cmd mit /c aufrufen und dein prog als parameter übergeben


----------



## Guest (4. Jan 2007)

schon probiert, funktioniert nicht

solange ich keinen parameter angebe startet das programm, aber sobald ich nen parameter anhänge passiert nix


----------



## Guest (4. Jan 2007)

habe

```
//starte GNUplot
		try
		{		
			String cmd = "cmd /c start " + this.pfadZuGnuplot+"\\bin\\wgnuplot.exe";
			String[] param = {this.pfadZuGnuplot+"\\bin\\sinus.dat"};
			
			Runtime.getRuntime().exec(cmd, param);
		}
		catch(IOException e)
		{
			System.out.println("E/A Fehler!");
			e.printStackTrace();
		}
```
das programm (gnuplot) startet, nur der parameter wird ignoriert
gebe ich exakt das gleiche unter start-> ausführen bei windows ein,
nämlich

"C:\Programme\gnuplot\bin\wgnuplot.exe C:\Programme\gnuplot\bin\sinus.dat"

funktioniert es.
Wie mache ich also, dass Java ganz einfach wie start->ausführen einen befehl so ausführt wie ich will???


----------



## Gast (4. Jan 2007)

ganz einfach den parameter direkt an den cmd befehl anhängen und nicht in einer extra variable

String cmd = "cmd /c start " + this.pfadZuGnuplot+"\\bin\\wgnuplot.exe sinus.dat";


----------



## Guest (5. Jan 2007)

funktioniert leider nicht, java rechnet kurz, printet ca. 15 leerzeilen in die konsole und das war's dann


----------



## The_S (5. Jan 2007)

Also bei mir funktioniert das so einwandfrei. Lass dir cmd und param doch mal ausgeben (und poste es hier), nicht das da was falsches drinsteht, da du den String ja erstmal zusammenbaust.


----------



## Guest (5. Jan 2007)

Ok also 

```
String cmd = "cmd /c start " + this.pfadZuGnuplot+"\\bin\\wgnuplot.exe "+this.pfadZuGnuplot+"\\bin\\sinus.dat";
Runtime.getRuntime().exec(cmd);
```

funktioniert soweit, habe mal ausgeprintet was er called:

cmd /c start C:\Programme\gnuplot\bin\wgnuplot.exe C:\Programme\gnuplot\bin\sinus.dat

Er öffnet jetzt das gewünschte Programm und auch die durch das externe Programm berechnete Darstellung (von sinus.dat)

Problem:
Es wird zwar das Fenster der graphischen Darstellung geöffnet, aber die Darstellung an sich fehlt. (-> der Sinus ist nicht zu sehen)

Rufe ich den oben ausgeprinteten Call unter Start->Ausführen oder in der cmd auf, dann funktioniert alles wie es soll.

Ist aber egal, schreibe jetzt einfach mit Java ne Batch-Datei in das Verzeichnis, in der der Call drin steht und dann callo ich von Java aus die Batch.
Ist ein bisschen polnisch, aber es funktioniert.


----------

