Kann ich eine .jar Datei mit Java starten ohne cmd?
Ich will eine .jar Datei mit Java starten aber ohne einen befehl auszuführen, ist das möglich?
4 Antworten
ohne einen befehl auszuführen
Was heißt das?
Wenn ich dich recht verstehe, willst du ein "executable JAR" (also eines mit main-Methode im Manifest) aus einem Java-Prozess aus starten. Und du erwartest, dass dabei ein neuer Prozess entsteht, ohne dass ausdrücklich "java" verwendet wird, d.h. die aktuelle VM irgendwie weiterverwendet wird?
Ich fürchte, das geht so nicht. Der kanonische Weg um einen Prozess zu starten, egal ob JVM oder nicht, ist über den ProcessBuilder.
Du kannst allenfalls rausfinden wie die aktuelle JVM gestartet wurde und das wiederverwenden.
Wenn du aber zur Laufzeit Klassen nachladen und im aktuellen Prozess betreiben willst (meinetwegen als separater Thread), ist das natürlich schon möglich.
Ohh du hast recht, ich habe nicht tief genug gelesen weil mir die Werbung suggeriert hat dass ich am Ende der Seite bin 🙄
Wie genau kann ich das denn machen, also das zur Laufzeit Klassen nachladen?
Schau dir java.lang.ClassLoader an. Im einfachsten Fall reicht loadClass(), wenn die Klasse sowieso auf dem bekannten Classpath zu finden ist.
Wenn du den Classpath zur Laufzeit erweitern willst, wirst du einen eigenen Classloader einhängen müssen. Das ist auch keine große Hexerei, aber du wirst schon lernen müssen, wie das funktioniert: https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/ClassLoader.html#getSystemClassLoader()
selbst ein doppelclick ist ein befehl .
aber ja , du musst nur die .jar endung mit dem java.exe programm verknüpfen .
nein ich meine mit einem java programm das java programm starten, aber eben ohne einen cmd befehl
Ohne ins Detail zu gehen: Das kommt auf die .jar an. Manche lassen sich mit einem einfachen Doppelklick starten, manch andere nicht.
geh bitte ins detail, ich will die datei von einem java programm aus starten, also doppelklick fällt wohl weg :/
Was genau meinst du damit?
Du möchtest also, dass ein Java Programm ein anderes Java Programm startet?
Hab ich das so richtig verstanden?
Ich denke er möchte eher wissen wie er sein Programm starten kann, ohne den Weg über die Eingabeaufforderung gehen zu müssen^^