# Externes Programm starten



## padde479 (18. Jul 2007)

Hi @all,

aus meiner UI heraus möchte ich eine externe Anwendung starten. Dazu verwende ich im Quelltext folgenden Aufruf:

```
try {
    Process process = Runtime.getRuntime().exec("cmd /c " + exex);
} catch (Exception ex) {
    /* do nothing */
}
```

Das funktioniert auch soweit einwandfrei. Allerdings nur unter Windows. Jetzt möchte ich gerne das Programm unter UNIX laufen lassen. Allerdings knallt es dort immer. Was muss man unter UNIX denn angeben? _"cmd /c"_ hilft unter UNIX nicht.

Hat jemand sowas ähnliches schon einmal erlebt?

Gruß
Padde


----------



## P3AC3MAK3R (18. Jul 2007)

Was für ein Aufruf steht denn eigentlich genau in der Variablen exex?


----------



## padde479 (18. Jul 2007)

Pfad zum bin-Verzeichnis der externen Anwendung. Daran liegt es aber nicht. Meine Vermutung ist, dass ich auch unter  UNIX eine Shell voranstellen muss. Aber welche? Und die Option "/c" muss auch sein?

Gruß
Padde


----------



## thE_29 (18. Jul 2007)

Also unter Linux geht konsole /e + Befehl!
Unix könnte ich jetzt net sagen!


----------



## P3AC3MAK3R (18. Jul 2007)

padde479 hat gesagt.:
			
		

> Pfad zum bin-Verzeichnis der externen Anwendung. Daran liegt es aber nicht.


Meine Vermutung war auch nicht, daß es "daran liegt". Ich wollte einfach nur wissen, was Du überhaupt ausführen möchtest. 



			
				padde479 hat gesagt.:
			
		

> Meine Vermutung ist, dass ich auch unter  UNIX eine Shell voranstellen muss. Aber welche?


Bin mir da jetzt ehrlich gesagt nicht zu 100 % sicher, aber ich würde es einfach mal ohne das Voranstellen einer Shell versuchen.



			
				padde479 hat gesagt.:
			
		

> Und die Option "/c" muss auch sein?


Die gehört definitiv zur cmd-Syntax, macht also unter UNIX eigentlich keinen Sinn.


----------



## Murray (18. Jul 2007)

Warum musst du denn eine Shell voranstellen, wenn exex den Pfad zu einem Binary enthält und nicht etwa ein Shell-Commando? Auch unter Windows is das Voranstellen vom cmd /c ja auch nicht grundsätzlich nötig.


----------



## padde479 (18. Jul 2007)

Hi @all,

erst einmal vielen Dank für die rege Anteilnahme. Stelle ich keine Shell dem Kommando voran, dann für _Runtime.getRuntime().exec(exec)_ zu keinem Ergebnis, d.h. der Prozess wird nicht gestartet. Funktioniert in der Regel auch nicht unter Windows. Ich werde mal den Tipp von *thE_29* ausprobieren. Vielleicht komme ich damit ja weiter.

Ich kann euch nur sagen, falls ihr jemals mit HP-UX in Kontakt kommt, rennt, so schnell ihr könnt. Ist echt kein Geschenk.

Gruß
Padde


----------



## Guest (29. Jul 2007)

unter unix ist es nicht notwenig ein programm über eine
shell ( zB bash, tsh, oä) zu starten, es sei denn, du möchtest
es in einer shell starten lassen. oder unter x-window
zb über xterm -e oä) ; normalerweise
reicht der verweis auf das binary.
ist der pfad in der path angegeben, reicht der bin-name allein,
ohne vollständiger path-angabe,
jedoch ist das schlechter programmierstil.


----------

