Jar aus Java-Programm starten

  • Themenstarter Themenstarter Guest
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hallo,

wie kann man eine ausführbare Jar-Datei aus einem Java-Programm ausführen (die Jar Datei ist im Classpath enthalten). Ich will denselben Effekt haben, wie wenn ich ganz normal per Doppelklick die Jar zum laufen bringe.

Ich hab es mit dem direkten Aufruf der Main-Methode in der Jar Datei und dem Aufruf der Main-Methode über method.invoke(); versucht. Beides Mal startet das Programm zwar, allerdings so wie wenn man einfach die Methode aufrufen würde. Dies hat zur Folge, dass das Programm innerhalb des Aufruferprogramms läuft. Ich will aber, dass die aufgerufene Jar als eigenes Programm läuft.

Ich hoffe, ihr könnt mir helfen.
 
Kannst du vielleicht mit Runtime.getRuntime().exec ("java -jar bla.jar"); machen. Aber Gegenfrage: Was stört dich denn daran, wenn das in der gleichen JVM läuft? Performanter ist das sicher...
 
Das Problem ist folgendes: Das Programm ist ein Client mit einer GUI, die Jar der Server. Normalerweise wird der Server gestartet und dann der Client. Um das Programm nutzerfreundlicher zu machen, wollte ich, dass der User nur noch den GUI-Client öffnen muss und der Server dann automatisch geöffnet wird. Wenn ich jetzt aus dem Client die Main-Methode des Servers aufrufe, bleibt das Programm hängen - keine Ahnung warum, ist aber so. Mit Runtime.getRuntime().exec funktioniert es jetzt - danke.
 
Gast hat gesagt.:
...Wenn ich jetzt aus dem Client die Main-Methode des Servers aufrufe, bleibt das Programm hängen - keine Ahnung warum, ist aber so.

Vermutlich weil Dein Programm dann auf die Abarbeitung der main-Methode des Servers wartet. Wenn diese eine Art Endlosschleife beinhaltet, dann wartet das aufrufende Programm natürlich, bis diese wieder verlassen wurde und die main-Methode zu Ende abgearbeitet wurde. In einem solchen Fall könntest du einen extra-Thread anlegen, in dem dann die main-Methode gestartet wird; so wird das erste Programm nicht mehr blockiert.
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben