# Jar aus Java Programm starten



## meckiebro (26. Dezember 2010)

Hallo zusammen,

Ich habe folgendes Problem. Ich weiß zwar wie ich eine Jar starten kann nur gibt es da noch ein paar Schwierigkeiten.
Ich möchte das die sowohl für PC als auch fürn Mac funktioniert.

Bisher habe ich das so


```
Runtime.getRuntime().exec("java -jar \""+fileName+"\""+parameter);
```
Also unter Windows funktioniert das wunderbar.
Unter mac funktioniert das leider nicht. Er hat irgendwie Probleme mit dem " vor und hinter dem fileName.
Dies habe ich extra gemacht damit auch leerzeichen in den Verzeichnissen vorkommen können.
Im Terminal funktioniert das komischerweise mit den ".
Ich weiß nicht mehr weiter und hoffe auf eure Hilfe

Grüße
Meckie


----------



## meckiebro (29. Dezember 2010)

Hab es hinbekommen.
Für alle die es interessiert hier die Lösung


```
Runtime.getRuntime().exec(new String[]{"java","-jar",fileName,parameter});
```


----------



## saftmeister (29. Dezember 2010)

Man könnte natürlich auch das gewünschte Jar in den Classpath mit aufnehmen und da die Main-Class suchen.

Oder man verwendet einfach den JarClassLoader.


----------



## SPiKEe (3. Januar 2011)

saftmeister hat gesagt.:


> Man könnte natürlich auch das gewünschte Jar in den Classpath mit aufnehmen und da die Main-Class suchen


 
FAILED ...

warum seit ihr alle immer so scharf auf dieses "IN-DEN-CP-MIT-AUFNEHMEN"

hast du vllt auch nur einen gedanken dran verschwendet das er das auch irgendwie mal publizieren will ...


zum problem selbst ...
das laden eines jars aus einer anderen java-app wird meist nativ gemacht und der ersten java-app die möglichkeit zu geben sich zu beenden
wenn wenn man einen ClassLoader verwendet läuft die erste app solange weiter bis die zweite beendet is *hat was damit zu tun wie ClassLoader arbeitet*

außerdem musst du auf den aufruf achten
wenn du unter windows mit JAVA startest hast du eine console im hintergrung auch bei gui's ... sehr störend ... dafür gibt es unter windows JAVAW ...
unter linux zum beispiel ist es egal ... da wird eine gui mit JAVA ohne eine console im hintergrund gestartet ...

also überlege dir am besten ein anderes konzept um dein problem zu lösen


----------



## saftmeister (3. Januar 2011)

SPiKEe hat gesagt.:


> FAILED ...
> 
> warum seit ihr alle immer so scharf auf dieses "IN-DEN-CP-MIT-AUFNEHMEN"
> 
> hast du vllt auch nur einen gedanken dran verschwendet das er das auch irgendwie mal publizieren will ...


 
Und das geht dann nicht mehr, also das Veröffentlichen? Außerdem wars nur ein Vorschlag für weitere Möglichkeiten. Zudem ist der Classpath nunmal dafür da, zusätzliche (externe) Klassen verfügar zu machen. Wo sind deine Bedenken?


----------

