Jar aus Java Programm starten

meckiebro

Mitglied
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

Code:
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
 
Hab es hinbekommen.
Für alle die es interessiert hier die Lösung

Code:
Runtime.getRuntime().exec(new String[]{"java","-jar",fileName,parameter});
 
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
 
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?
 
Zurück