Java Programm aus java heraus starten

hi,

ich habe eine java-applikation, die wiederum eine andere java-applikation aufrufen soll (jar). Geht das nur über System.exec oder auch anders?

danke und gruß bonkers

Moin

ich habe eine java-applikation, die wiederum eine andere
java-applikation aufrufen soll (jar).

Les das Manifest aus (getManifest in der JarFile-Klasse), bestimm so die Hauptklasse. Leg einen Classloader für jar-DAteien an, ladt die Hauptklasse mit diesen und führ main() aus.

Oder verlass dich auf „java -jar Datei.jar“.

cu

Les das Manifest aus (getManifest in der JarFile-Klasse),
bestimm so die Hauptklasse. Leg einen Classloader für
jar-DAteien an, ladt die Hauptklasse mit diesen und führ
main() aus.

diese version klingt interessanter, gibts dafür irgandwo ein beispiel?

Moin

diese version klingt interessanter, gibts dafür irgandwo ein
beispiel?

Wüsste so direkt keins. Geht allerdings auch einfach:

java.net.URLClassLoader als ClassLoader benutzen. (den „!“ = jar-Datei trick kennst du ?)

new JarFile (Datei).getManifest();
gibt dir das Manifest.

Mit:
URLClassLoader.loadClass(String name)
die main-klasse laden.

und mit
Method main = Class.getDeclaredMethod(String name, Class[] parameterTypes)
die main-methode suchen.

mit main.invoke(…) starten.

… 20 Zeilen, wenns hoch kommt.

cu

1 Like

ok danke, werde mich demnächst dran versuchen. den trick wird mir google schon verraten :smile: