JavaFX Maven Projekt als .exe Datei exportieren

GregDev

Mitglied
Hallo liebes Forum,
bin neu hier, also erstmal schön, dass es dieses Forum gibt. Meine letzte Hoffnung.

Ich habe ein JavaFX Projekt mittels Maven auf IntelliJ erstellt. Funktioniert wie ne Eins. Ich konnte das Projekt auch mit jlink exportieren. Bis hier hin also kein Problem.

Jetzt möchte ich aber eine einzelne .exe Datei haben, in der alles enthalten ist, sowohl die Runtime-Komponenten als auch die benötigten JavaFX Module. Ich weiß es gibt tausende Suchergebnisse auf Google, aber irgendwie funkt es bei mir nie.
Mir fehlt ja eigentlich nur noch der letzte Schritt, von jlink zu einer .exe zu kommen.

Ich würde mich über Hilfe freue und wünsche euch noch nen' sonnigen tollen Tag ;-) .

(Ich wusste nicht ob das Thema zu "JavaFX" gehört, wahrscheinlich schon, aber ist irgendwie auch was Allgemeines. Hoffe es ist ok. Wenn es falsch ist entschuldige ich mich.)
 

KonradN

Super-Moderator
Mitarbeiter
Ab Java 14 gibt es JLink, das kann dir eine exe erzeugen, aber es wird immer noch paar zusätzliche Dateien geben.

Das lässt sich auch in Maven automatisiert mit aufrufen.
 

GregDev

Mitglied
Danke für deine Antwort!
Ich habe JLink einmal durchlaufen lassen. im target Ordner wurde das JLink image erstellt. In dem bin Ordner wurde folgende Anwendungen erstellt: java, javaw, jrunscript und keytool. All diese starten nur kurz die Kommandozeile und schließen sich darauf wieder. Es wurdeauch ein Launch Script erstellt lauch.bat, aber dieser funktioniert nur in Zusammenhang mit den anderen Dateien. Ist nicht so Nutzerfreundlich alle Dateien komprimiert als Zip weiterzugeben, deswegen wollte ich eine exe haben. Auf Mac konnte ich das Problem ziemlich leicht lösen, aber auf Windows leider nicht.
 

KonradN

Super-Moderator
Mitarbeiter
Eine stand alone EXE ist mit dem JDK nicht möglich. Ein weitergehender Schritt ist JPackage. Dabei wird das aus dem JLink Image entweder ein App-Image gebaut (dann hat man eine exe, die man ausführen kann. Aber die Verzeichnisstruktur / anderen Dateien braucht man weiterhin) oder ein MSI um das JLink-Image zu installieren.

Eine weitere Option, die man sich anschauen könnte: GraalVM - Da wird ggf. eine einzelne EXE erzeugt. Da bin ich mir aber jetzt nicht sicher - ich habe es mir noch nicht so genau angesehen.
 

S34N

Mitglied
Eine stand alone EXE ist mit dem JDK nicht möglich. Ein weitergehender Schritt ist JPackage. Dabei wird das aus dem JLink Image entweder ein App-Image gebaut (dann hat man eine exe, die man ausführen kann. Aber die Verzeichnisstruktur / anderen Dateien braucht man weiterhin) oder ein MSI um das JLink-Image zu installieren.

Eine weitere Option, die man sich anschauen könnte: GraalVM - Da wird ggf. eine einzelne EXE erzeugt. Da bin ich mir aber jetzt nicht sicher - ich habe es mir noch nicht so genau angesehen.
Wie könnte man eine javafx app eigenständig machen wenn der rechner auf dem es laufen sollte keine internet verbindung hat? Dann würde es ja schlecht gehen mit maven oder?
 
Y

yfons123

Gast
maven in eclipse braucht ansich auch kein internet wenn du die pakete schon hast

zb eclipse lädt sie in den .m2 ordner der versteckt ist und referenziert die pakete
wenn du dir neue pakete von maven holst lädt sie eclipse da rein

zum aktualisieren brauchst du halt internet
 

KonradN

Super-Moderator
Mitarbeiter
Den Punkt mit GraalVM habe ich ansonsten auch noch einmal etwas ausprobiert. Und das ist übrigens auch eine gute Lösung.

Voraussetzungen:
  • GraalVM mit Native-Image (siehe Homepage)
  • Das JavaFX ist etwas blöd mit dem Classloader. Da kann es Probleme geben, wenn die Klasse mit der Main Methode zugleich von Application erbt. Daher habe ich eine einfache Klasse mit einer main Methode, die einfach die andere main Methode aufruft.

Was ich gemacht habe:
a) Die Abhängigkeiten habe ich mir in ein Verzeichnis geschrieben.
XML:
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <version>${maven.dependency.plugin}</version>
                <executions>
                    <execution>
                        <id>copy-dependencies</id>
                        <phase>package</phase>
                        <goals>
                            <goal>copy-dependencies</goal>
                        </goals>
                        <configuration>
                            <outputDirectory>${project.build.directory}/modules</outputDirectory>
                            <overWriteReleases>false</overWriteReleases>
                            <overWriteSnapshots>false</overWriteSnapshots>
                            <overWriteIfNewer>true</overWriteIfNewer>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

b) Das wird dann einfach per native-image zusammen gebaut. Bei mir war alles (incl. dem jar der Projekts) in modules, so dass ein
native-image -cp "./modules/*" package.Main
ausreichte um dann ein einzelnes Binary zu haben, das problemlos funktioniert.

Das ist also durchaus eine gangbare Lösung. Das mit der separaten Klasse für die main müsste man sich evtl. noch etwas ansehen, aber das wäre so als erster Schritt doch schon einmal nicht schlecht - und nur mit minimalem Aufwand verbunden.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
berserkerdq2 Wenn ich bei Intelij javafx mit maven importieren will, muss ich das in die pom.xml reintun, aber warum noch in module-info.java? Allgemeine Java-Themen 3
J PDF-Vorschau mit ICEPDF, JavaFX und ANT Allgemeine Java-Themen 3
J Integration pay Pale in eine JavaFx Desktop Application Allgemeine Java-Themen 1
Thomasneuling Java Jar datei erstellen, von Projekt, dass auch Javafx Dateien, FXML Dateien und CSS Dateien, sowie Bilder enthält? Allgemeine Java-Themen 14
berserkerdq2 Jemand einen Tipp wie man ein Javafx-Hintergrund "dynamisch" macht Allgemeine Java-Themen 3
berserkerdq2 Frage zu IntelliJ und JavaFX Allgemeine Java-Themen 1
thor_norsk Eclipse - Fehlermeldung - JavaFX Allgemeine Java-Themen 24
volcanos JavaFX-Programme nur in NetBeans selber ausführbar ! command_line: NoClassDefFoundError Allgemeine Java-Themen 39
C Java11+ JavaFX HtmlEditor ContextMenu neue MenuItems hinzufügen Allgemeine Java-Themen 5
G JavaFX var Ausdruck Allgemeine Java-Themen 1
G javafx "class path" exception Allgemeine Java-Themen 5
K Anzeigemöglichkeit von Bildern in JavaFX mit Hilfe von MongoDB GridFS Allgemeine Java-Themen 0
M JavaFX Allgemeine Java-Themen 13
P JavaFX Anwendung beendet sich selbst nur als Jar Allgemeine Java-Themen 40
L JavaFX JavaFX Chart in Apache Poi Excel Datei Allgemeine Java-Themen 2
A Zusammenspiel javafx Fenster Allgemeine Java-Themen 1
D JavaFX mit JDK 12 Allgemeine Java-Themen 31
H Internationalisierung I18n in JavaFx? Allgemeine Java-Themen 7
Tarrew JavaFX: K-NN Decision Boundary plotten (Mesh-Grid, Polylines, ... ?? ) Allgemeine Java-Themen 1
D Compiler-Fehler JavaFX - Bekomme Fehlermeldungen nicht weg Allgemeine Java-Themen 31
N Über einen Button in JavaFX ein Event über eine Pipeline schicken(Netty) Allgemeine Java-Themen 1
M List -Tableview-Javafx-Vererbung Allgemeine Java-Themen 35
RalleYTN 2D-Grafik Bild ohne AWT, Swing und JavaFX rotieren Allgemeine Java-Themen 12
U JAVAFX Simulation Allgemeine Java-Themen 1
M javafx ComboBox- Nullpointer Exception Allgemeine Java-Themen 6
L Eclipse JavaFX Klasse starten programmatisch Allgemeine Java-Themen 1
Sam96 JavaFX Benutzerrechte Allgemeine Java-Themen 6
J javaFX mySQL Allgemeine Java-Themen 3
P JavaFX HTMLEditor Menü Allgemeine Java-Themen 0
L JavaFX JavafX externe FXML laden? Allgemeine Java-Themen 4
S JavaSE, JavaEE oder JavaFX? Allgemeine Java-Themen 5
N WaitForScript- methode in javafx Allgemeine Java-Themen 1
I Javafx Open/Read und Tree Funktion Allgemeine Java-Themen 14
M Regex für Zahleneingabe in JavaFX Textfield Allgemeine Java-Themen 18
B JavaFX fxml, die selbe Instanz der Klasse Allgemeine Java-Themen 4
M JavaFX-Gegenstück zu Swing-Button-DoClick-Methode Allgemeine Java-Themen 5
D WSDL-Aufruf funktioniert nicht mehr nach Umstieg auf Maven Allgemeine Java-Themen 4
Zrebna "Maven install" schlägt nur bei mir lokal fehl - Ursachenforschung Allgemeine Java-Themen 5
Zrebna Wie ermittelt man alle testbaren (zu testenden) Klassen in seinem Maven-Projekt? Allgemeine Java-Themen 23
G Maven Projekt JAR-Datei Allgemeine Java-Themen 6
O Maven ein externes jar laden ohne die Applikation neu zu kompilieren Allgemeine Java-Themen 4
berserkerdq2 Kann jemand vereinfacht erklären was Maven ist? Allgemeine Java-Themen 8
J maven Allgemeine Java-Themen 2
Kirby.exe JDBC Connector von Maven Repo importieren Allgemeine Java-Themen 1
G Maven link outdated Allgemeine Java-Themen 13
bueseb84 Fehler beim Import von Maven Dependencies aus lokalem artifactory Allgemeine Java-Themen 2
bueseb84 Gleiche Maven Versions in Child Modulen Allgemeine Java-Themen 13
J Gebautes Jar per Maven in einen Docker Container kopieren Allgemeine Java-Themen 0
V Maven Maven ClassNotFoundException MySQL JDBC Treiber Allgemeine Java-Themen 1
B Maven Keycloak library wirft exceptions nach maven package Allgemeine Java-Themen 1
HarleyDavidson NetBeans Jigsaw & Maven Allgemeine Java-Themen 3
J Alle Unit Tests in Maven Modul Projekt ausführen Allgemeine Java-Themen 7
R JDK installieren JDK / Maven auf Windows 10 installieren Allgemeine Java-Themen 9
N Maven ObjectMapper Error wenn das File gespeichert wird Allgemeine Java-Themen 0
O Maven - JUnit - H2 Allgemeine Java-Themen 1
M Maven Dependency aus Projekt nicht aus Repo Allgemeine Java-Themen 3
G maven 3.1.1 StackOverflowError Allgemeine Java-Themen 3
J libs mit maven in jar packen Allgemeine Java-Themen 2
M Maven Repo spiegeln Allgemeine Java-Themen 2
F Maven 3.0 Allgemeine Java-Themen 3
O Junit Reports / Logs als XML ohne Maven/Ant Allgemeine Java-Themen 7
S [Maven] remote repository Allgemeine Java-Themen 5
S JOGL NoClassDefFoundError und Maven Allgemeine Java-Themen 4
B maven 2 error bei plugin download Allgemeine Java-Themen 7
H Ant oder Maven? Allgemeine Java-Themen 10
K Java-Projekt Allgemeine Java-Themen 11
K Java-Projekt Allgemeine Java-Themen 0
Jose05 mit 2 - 3 Personen an einem Projekt coden Allgemeine Java-Themen 2
Momo16 Brauche Hilfe - Java Projekt kann nicht erstellt werden Allgemeine Java-Themen 12
S Microservice Projekt verwalten Allgemeine Java-Themen 22
alinakeineAhnungv Hilfe bei einem Straßenbahn-Projekt von mir Allgemeine Java-Themen 18
O community projekt Allgemeine Java-Themen 9
T Projekt baut nicht mehr/lässt sich nicht mehr ausführen Allgemeine Java-Themen 6
pkm Warnungen in einem Drools-Projekt unterdrücken? Allgemeine Java-Themen 1
platofan23 Wie .txtDatei im Java Eclipse-Projekt bzw. in der Jar speichern? Allgemeine Java-Themen 7
O Suche Unterstützung für ein OpenSource-Projekt (grafischer Editor) Allgemeine Java-Themen 13
DonMalte Ambitioniertes Projekt für Einsteiger & Motivierte Allgemeine Java-Themen 0
Drachenbauer Wie finde ich den Aufrufer zu einer Methode, die sich nicht in meinem Projekt befindet? Allgemeine Java-Themen 2
B Problem zu einem Java Projekt Allgemeine Java-Themen 6
J File in Package erstellen & lesen mit Programmstart in externe Projekt Allgemeine Java-Themen 3
M Brainstorming für mein Projekt Allgemeine Java-Themen 30
D Warum kann ich eine (deflaut) Klasse aus einer Libary in einem anderen Projekt benutzen? Allgemeine Java-Themen 3
xYurisha Eclipse, Projekt beschädigt! Allgemeine Java-Themen 6
P BlueJ BlueJ Gloop City Projekt Allgemeine Java-Themen 0
R Praktikums Projekt Java vs MySQL Allgemeine Java-Themen 91
H Projekt Quadraturverfahren Rechner Allgemeine Java-Themen 2
S WebApplikation Projekt in Firma Allgemeine Java-Themen 2
S Eclipse Github Projekt in eigenes Projekt einbinden und nutzen Allgemeine Java-Themen 13
T iText mit eclipse richtig in Java-Projekt einbinden Allgemeine Java-Themen 2
J Java Projekt, Online-Datenabfrage, Visualisierung Allgemeine Java-Themen 3
markuskat Erste Schritte JavaEE WebApplication - Erstes Projekt Allgemeine Java-Themen 16
O Compiler-Fehler Wie kompiliere ich dieses Alt-Projekt ? Allgemeine Java-Themen 9
P Eclipse Projekt anlegen macht Problem Allgemeine Java-Themen 1
N Eclipse Projekt von GitHub in bestehendes Projekt einbinden Allgemeine Java-Themen 13
G Mein PDF Projekt mit iText Allgemeine Java-Themen 2
G Kleines Projekt Allgemeine Java-Themen 2
S Best Practice Brauche eine Idee für eine Java Projekt! Allgemeine Java-Themen 11
S Erstes größeres Java Projekt: Etiketten Allgemeine Java-Themen 3
M Eclipse libgcrypt für window in java Projekt einbinden Allgemeine Java-Themen 1
N Kleines GUI/Sortier Projekt für die Uni Allgemeine Java-Themen 11

Ähnliche Java Themen


Oben