Ausführbare Datei aus JavaFX Projekt erstellen

Hallo,
ich habe ein kleines Programm mit JavaFX geschrieben, nun möchte ich aber nicht immer erst IntelliJ starten um mein Programm auszuführen, daher möchte ich eine .exe, .jar, .dmg Datei aus dem Programm machen.
Ich nutze die JavaFX-sdk-11.0.2 und als Projekt SDK Java 12.

Wäre über eine kleine Anleitung oder eine Verlinkung einer hilfreichen Anleitung sehr dankbar.

MfG
 

dzim

Top Contributor
Ich hätte da mal was bei mir auf Arbeit vorbereitet... Muss ich mal abklären, ob ich das teilen kann.
Gestestet mit Java & JavaFX 11 und 12. Jeweils AdoptOpenJDK. OpenJFX und Kotlin via Maven-Dependency. Das Ganze macht dann mittels JLink eine maßgeschneiderte Runtime (bzw. ein Image), dass dann mit dem Early Access jpackager (ein OpenJDK 14 ea build) eine selbstständig lauffähige Applikation für den Desktop erstellt (in etwa so wie es früher der javapackager in Java 8 gemacht hat).

Etwas einfacher könnte es allerdings hiermit gehen: https://github.com/gluonhq/client-samples
Konkret das Beispiel für die FXML-Integration: https://github.com/gluonhq/client-samples/tree/master/Gradle/HelloFXML
Damit wird wohl eine einzelne Executable mittels GraalVM erstellt und sollte Desktop (alle Plattformen), sowie iOS unterstützen. Leider noch nicht Android.
Disclaimer: Ich hab es allerdings noch nicht selbst ausprobiert.
 
Ich hätte da mal was bei mir auf Arbeit vorbereitet... Muss ich mal abklären, ob ich das teilen kann.
Gestestet mit Java & JavaFX 11 und 12. Jeweils AdoptOpenJDK. OpenJFX und Kotlin via Maven-Dependency. Das Ganze macht dann mittels JLink eine maßgeschneiderte Runtime (bzw. ein Image), dass dann mit dem Early Access jpackager (ein OpenJDK 14 ea build) eine selbstständig lauffähige Applikation für den Desktop erstellt (in etwa so wie es früher der javapackager in Java 8 gemacht hat).

Etwas einfacher könnte es allerdings hiermit gehen: https://github.com/gluonhq/client-samples
Konkret das Beispiel für die FXML-Integration: https://github.com/gluonhq/client-samples/tree/master/Gradle/HelloFXML
Damit wird wohl eine einzelne Executable mittels GraalVM erstellt und sollte Desktop (alle Plattformen), sowie iOS unterstützen. Leider noch nicht Android.
Disclaimer: Ich hab es allerdings noch nicht selbst ausprobiert.
Ich werde es so mal probieren, danke dir
 

dzim

Top Contributor
In dem Fall musst du die Module von OpenJFX installieren: https://openjfx.io/openjfx-docs/#modular
Oder eben ZuluFX von Azul Systems.

Ich würde dir generell aber empfehlen, eher früher als später, dich mit einem Buildsystem, sei es Maven oder Gradle, anzufreunden. Langfristig macht dir das das Leben leichter.
 

Thallius

Top Contributor
In jedem auch nur halbwegs professionellen Umfeld nutzt doch niemand für sowas die IDE...

Aber auch unter 11 funktioniert das noch mit IntellIJ, nur kann man damit eben keine Multi-Module-Jars bauen, weil Java keine Multi-Module-Jars kann.

Ich nutze Java auch nicht wirklich professionell. Wenn ich mal schnell ein Tool brauche ist es gut.
Professionell setze ich lieber auf Web Entwicklung mit Javascript und Backend mit PHP oder NodeJS. Je nachdem was gefordert wird.
 

dzim

Top Contributor
Also einmal richtig aufgesetzt macht ein Buildsystem für dich eigentlich die ganze Arbeit. Selbst für Basteleien würde ich bei neuen Projekten nicht mehr auf das veraltete Java 8 setzen. Und Java ohne Maven oder Gradle kommt mir eh nicht unter.

Wir haben Java 8 nur noch für "legacy"-Systeme im Einsatz, aber auch hier ist mittelfristig der Wechsel auf 11 geplant (oder 14, wenn das früher da sein sollte, als wir soweit sind :D).
 

lam_tr

Top Contributor
Also einmal richtig aufgesetzt macht ein Buildsystem für dich eigentlich die ganze Arbeit. Selbst für Basteleien würde ich bei neuen Projekten nicht mehr auf das veraltete Java 8 setzen. Und Java ohne Maven oder Gradle kommt mir eh nicht unter.

Wir haben Java 8 nur noch für "legacy"-Systeme im Einsatz, aber auch hier ist mittelfristig der Wechsel auf 11 geplant (oder 14, wenn das früher da sein sollte, als wir soweit sind :D).

Hallo dzim,

ist an der Stelle lieber ein Wechsel auf 11 oder auf das neuste besser? ich weiß dass der Support von 11 länger dauert. Lohnt sich jedes halbe Jahr auf die neue Version zu gehen?

Grüße
lam
 

mrBrown

Super-Moderator
Mitarbeiter
Wechsel auf 11 oder auf das neuste besser? ich weiß dass der Support von 11 länger dauert. Lohnt sich jedes halbe Jahr auf die neue Version zu gehen?
Hängt vom Umfeld und der Art des Deployments ab.
Wenn die Entwicklung jeweils auf das neuste wechseln kann und dir Runtime zusammen mit dem Programm ausgeliefert wird, kann man recht gefahrlos die neuste Version nutzen.
Wenn man aber irgendwo von externen Umgebungen abhängt, würde ich jeweils bei der neusten LTS bleiben, aktuell also 11. Die Nutzer können dann die von ihnen bevorzugte Version nutzen.

In beiden Fällen ist es aber sinnvoll, alle Versionen in die Tests mit einzubeziehen, wobei alle Versionen alle die sind, die noch Support haben und mindestens die Zielversion sind.

Aktuell also (je nach Zielversion): 8, 11, 13, 14 (als early access).
Die Zwischenversionen kann man zusätzlich mit rein nehmen, aktuell zB 12, sollte aber kaum noch Nutzer haben und durch 11 und 13 abgedeckt sein.
 

lam_tr

Top Contributor
Hängt vom Umfeld und der Art des Deployments ab.
Wenn die Entwicklung jeweils auf das neuste wechseln kann und dir Runtime zusammen mit dem Programm ausgeliefert wird, kann man recht gefahrlos die neuste Version nutzen.
Wenn man aber irgendwo von externen Umgebungen abhängt, würde ich jeweils bei der neusten LTS bleiben, aktuell also 11. Die Nutzer können dann die von ihnen bevorzugte Version nutzen.

In beiden Fällen ist es aber sinnvoll, alle Versionen in die Tests mit einzubeziehen, wobei alle Versionen alle die sind, die noch Support haben und mindestens die Zielversion sind.

Aktuell also (je nach Zielversion): 8, 11, 13, 14 (als early access).
Die Zwischenversionen kann man zusätzlich mit rein nehmen, aktuell zB 12, sollte aber kaum noch Nutzer haben und durch 11 und 13 abgedeckt sein.
Und die OpenJFX ist unabhängig von OpenJDK Version ab 11 oder? Das war auch der Sinn von der Trennung.
 

dzim

Top Contributor
Problem ist aber: Ein LTS von Java 11 zu bekommen, ist nicht schwer (z.B. AdoptOpenJDK), aber für ein OpenJFX 11 LTS musst du bei Gluon löhnen. Es lohnt sich also eigentlich nicht, auf 11 zu bleiben, sondern immer aktuell zu bleiben.

Des weiteren haben die Gluon-Leute gesagt, dass sie nur eine Kompatibilität von OpenJFX X zur Java-Version X und X-1 garantieren wollen (damit man z.B. auch OpenJFX-EA-Builds der nächsten Version mit der gerade aktuellen Java-Version testen kann). Darüber hinaus ist das nicht gegeben und ich habe es, ehrlich gesagt, auch nie probiert, sonder habe es immer so eingerichtet, dass ich die selben Versionen auf beiden genutzt habe.
 

mrBrown

Super-Moderator
Mitarbeiter
Des weiteren haben die Gluon-Leute gesagt, dass sie nur eine Kompatibilität von OpenJFX X zur Java-Version X und X-1 garantieren wollen (damit man z.B. auch OpenJFX-EA-Builds der nächsten Version mit der gerade aktuellen Java-Version testen kann). Darüber hinaus ist das nicht gegeben und ich habe es, ehrlich gesagt, auch nie probiert, sonder habe es immer so eingerichtet, dass ich die selben Versionen auf beiden genutzt habe.
Gibts da nen Blog-Post oder so von denen zu? Die Hintergründe würden mich interessieren
 

dzim

Top Contributor
Endlich mal gesucht: Kann es nicht (mehr) finden. Also nehmt diese Info von mir gebotener Vorsicht. Vermutlich kann man Problemlos JavaFX 11 auf JDK 13, und so weiter, laufen lassen.
Andersherum hängt es wohl eher davon ab, ob in den neueren JavaFX-Builds neue Java-Features oder -APIs verwendet werden. In dem Fall wird es Exceptions geben, aber ihr könntet das ja einfach schnell selbst ausprobieren... ;)
 

mrBrown

Super-Moderator
Mitarbeiter
Andersherum hängt es wohl eher davon ab, ob in den neueren JavaFX-Builds neue Java-Features oder -APIs verwendet werden. In dem Fall wird es Exceptions geben, aber ihr könntet das ja einfach schnell selbst ausprobieren... ;)
Dann sollte die Java-Version aber sowieso nicht mehr kompatibel sein, und der Build dann schon fehlschlagen?

Zumindest ein kleines Hallo World läuft mit 13 unter 11.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Bilder in ausführbare jar einbinden AWT, Swing, JavaFX & SWT 7
F Bilder zu ausführbarer Jar-Datei hinzufügen AWT, Swing, JavaFX & SWT 5
M Daten zufällig Einlesen aus einer Datei (binäres Format) AWT, Swing, JavaFX & SWT 7
ExceptionOfExpectation Mit einer laufenden GUI Applikation eine Datei in dem Rechner löschen AWT, Swing, JavaFX & SWT 2
melaniemueller Wortliste in einer Datei ablegen AWT, Swing, JavaFX & SWT 12
princess_sara1997 .jar Datei führt den Code nicht richtig aus AWT, Swing, JavaFX & SWT 19
Yonnig Lokale HTML-Datei in Java GUI rendern AWT, Swing, JavaFX & SWT 4
N JavaFX Javafx intelij Projekt zu ausführbaren jar Datei Machen AWT, Swing, JavaFX & SWT 1
Jose05 JavaFX: eigene FXML-Datei für einen Button AWT, Swing, JavaFX & SWT 3
T FXML Datei in Java Code einbinden: javafx.fxml.LoadException AWT, Swing, JavaFX & SWT 2
BabySuna Swing Komponenten auslagern auf separate Datei AWT, Swing, JavaFX & SWT 8
J Java Datei durch CMD mit Parameter ausführen AWT, Swing, JavaFX & SWT 1
B JavaFX JavaFX Anwendung deployen (entw als runnableJAR oder exe-Datei) AWT, Swing, JavaFX & SWT 15
M Eine Datei auf den Apache Server hochladen - über das Menü im JavaProgramm AWT, Swing, JavaFX & SWT 7
VPChief Gibt es eine möglichkeit Dateien aus der jar datei zu kopieren? AWT, Swing, JavaFX & SWT 46
H Daten aus einer XML(x83-Datei) in einem JFrame anzeigen lassen AWT, Swing, JavaFX & SWT 9
MasterCaution Swing .jar Datei ausführen AWT, Swing, JavaFX & SWT 12
A Swing Datei lässt sich zwar speichern, aber nicht laden (Inhalt im JTextField anzeigen) AWT, Swing, JavaFX & SWT 18
K Probleme bei der Erstellung und Ausführung einer Jar Datei AWT, Swing, JavaFX & SWT 2
G Verknüpfung einer pdf Datei AWT, Swing, JavaFX & SWT 2
L Bilder werden in exportierter Datei nicht geladen AWT, Swing, JavaFX & SWT 6
L Csv-Datei einlesen AWT, Swing, JavaFX & SWT 34
J *.jar öffnet PDF-Datei nicht AWT, Swing, JavaFX & SWT 35
M JavaFX Altes Fenster (FXML Datei) löschen AWT, Swing, JavaFX & SWT 16
F Java FX Von der Fxml Datei zum Objekt AWT, Swing, JavaFX & SWT 8
A JavaFX Anwendung in Jar Datei AWT, Swing, JavaFX & SWT 8
F FXML Datei aus dem SceneBuilder in Eclipse aufrufen AWT, Swing, JavaFX & SWT 1
J Swing JavaProgramm für Verschlüssen für eine Datei AWT, Swing, JavaFX & SWT 19
T .jar-Datei lässt sich unflexibler ausführen als über die IDE AWT, Swing, JavaFX & SWT 11
Kanda Sorata Inhalt einer .txt Datei einlesen und in ein Label einfügen (JavaFX) AWT, Swing, JavaFX & SWT 2
H Musik wird nach dem erstellen der .jar Datei nicht mehr abgespielt AWT, Swing, JavaFX & SWT 1
H JavaFX aus der .fxml Datei einen Konstruktor bedienen AWT, Swing, JavaFX & SWT 3
P JavaFX - XCF Datei von Gimp kann nicht angezeigt werden AWT, Swing, JavaFX & SWT 3
M Wie binde ich eine JavaFX ProgressBar an eine Datei Übertragung? AWT, Swing, JavaFX & SWT 2
7 JavaFX Verwendung einer ResizableCanvas-Klasse in fxml-Datei AWT, Swing, JavaFX & SWT 3
C JavaFX Auf Nodes einer FXML-Datei in start Methode zugreifen AWT, Swing, JavaFX & SWT 5
F Pfad von eingelesener Datei AWT, Swing, JavaFX & SWT 10
Crazynet xls Datei in JTable AWT, Swing, JavaFX & SWT 3
D Objekte einer Oberfläche in eine Datei/Ordner speichern AWT, Swing, JavaFX & SWT 9
P Programm durch Dateiaufruf starten und Datei öffnen AWT, Swing, JavaFX & SWT 2
G .txt-Datei einlesen /formatieren in JTextfield ?? AWT, Swing, JavaFX & SWT 8
B ST Datei einlesen AWT, Swing, JavaFX & SWT 1
D JavaFX Jar Datei Signieren mit Java 8u45 AWT, Swing, JavaFX & SWT 2
M Datei mit Komponenten einbinden AWT, Swing, JavaFX & SWT 7
M Swing PDF Datei nach drucken nicht löschbar AWT, Swing, JavaFX & SWT 6
A Databinding in FXML-Datei AWT, Swing, JavaFX & SWT 1
H 2D-Grafik .EPS Datei in .PNG konvertieren AWT, Swing, JavaFX & SWT 1
G Datei öffnen Dialog modifizieren AWT, Swing, JavaFX & SWT 13
F Swing Java Swing Array in Datei und wieder raus AWT, Swing, JavaFX & SWT 7
L 2D-Grafik PNG Datei in JLabel Array Problem AWT, Swing, JavaFX & SWT 4
B JAVAFX und CSS Datei in Eclipse AWT, Swing, JavaFX & SWT 4
3 Swing JList-Inhalt als verschlüsselte Datei schreiben und lesen AWT, Swing, JavaFX & SWT 1
S Aus XML Datei FXML generieren AWT, Swing, JavaFX & SWT 4
V JavaFX - fxml-Datei laden (neben CSS) AWT, Swing, JavaFX & SWT 2
S Swing Verzeichnis/Datei-Pfad in JTextField schreiben AWT, Swing, JavaFX & SWT 2
A JFileChooser Datei speichern AWT, Swing, JavaFX & SWT 4
T Aus JAVA.Jar GUI eine Flash-Datei machen AWT, Swing, JavaFX & SWT 3
A Datei weiterverwenden mit JFileChooser AWT, Swing, JavaFX & SWT 6
A AWT TTF-Datei zu Font-Objekt finden? AWT, Swing, JavaFX & SWT 5
Iron Monkey Nach Drag & Drop die Datei auf Komponent darstellen AWT, Swing, JavaFX & SWT 2
J JFileChooser - Datei speichern AWT, Swing, JavaFX & SWT 7
M Datei in jar öffnen AWT, Swing, JavaFX & SWT 11
W Funktion aus einer Java Datei in eine andere einbauen AWT, Swing, JavaFX & SWT 25
P Neue Datei erstellen in JPanel AWT, Swing, JavaFX & SWT 5
N Speicherpfad für Datei auswählen AWT, Swing, JavaFX & SWT 2
A JTextArea - Zeichenbegrenzung nach .txt Datei import AWT, Swing, JavaFX & SWT 6
N Applet JButton soll html Datei aus einem Ordner öffnen AWT, Swing, JavaFX & SWT 2
E Swing jTextPane Text datei anzeigen AWT, Swing, JavaFX & SWT 7
M Datei Speichern unter Dialog - SWT AWT, Swing, JavaFX & SWT 3
T SWT:Datei speichern / öffnen AWT, Swing, JavaFX & SWT 6
X Applet Java Applet Datei Ausführung AWT, Swing, JavaFX & SWT 9
J Bild aus Datei in BufferedImage laden AWT, Swing, JavaFX & SWT 4
M Swing XML Datei in JTable darstellen + verändern AWT, Swing, JavaFX & SWT 3
D Swing JTable in Datei speichern und laden AWT, Swing, JavaFX & SWT 3
J Fehler beim Gif Datei öffnen AWT, Swing, JavaFX & SWT 2
N Swing TreePath Datei öffnen AWT, Swing, JavaFX & SWT 7
B Datei öffnen Dialog AWT, Swing, JavaFX & SWT 9
kodela Swing JFileChooser und die Datei-Extension AWT, Swing, JavaFX & SWT 3
T Info Datei AWT, Swing, JavaFX & SWT 3
J ImageIcon: ZipException bei ungültiger PNG-Datei AWT, Swing, JavaFX & SWT 2
W jar Datei öffnen AWT, Swing, JavaFX & SWT 4
W TrayIcon mit jdic (Problem bei .jar Datei) AWT, Swing, JavaFX & SWT 3
D Nodes eines statischen JTrees sollen auf Anker (Textmarken) in einer HTML-Datei zeigen AWT, Swing, JavaFX & SWT 8
R Swing XML Datei in JTree, Problem mit Daten einlesen AWT, Swing, JavaFX & SWT 34
M AWT Datei auf server speichern und beschreiben AWT, Swing, JavaFX & SWT 7
P JMenu-Erweiterung in externer Datei AWT, Swing, JavaFX & SWT 5
M Text in txt-Datei in letzte Zeile schreiben? AWT, Swing, JavaFX & SWT 14
X Swing Inhalt einer JEditorPane in Datei abspeichern AWT, Swing, JavaFX & SWT 5
E Datei in TextArea anzeigen AWT, Swing, JavaFX & SWT 12
data89 Nimbus Look and Feel als gepackte JAR-Datei AWT, Swing, JavaFX & SWT 3
S Auswahlfenster: Datei beim Doppelklick öffnen AWT, Swing, JavaFX & SWT 8
N Swing Hintergrund Bild in JAR Datei AWT, Swing, JavaFX & SWT 2
I Swing .Jar Datei - funktioniert - nun als Applet AWT, Swing, JavaFX & SWT 13
M Text-Datei in einem JFrame öffen? AWT, Swing, JavaFX & SWT 2
Fadi Images in JAR Datei laden? AWT, Swing, JavaFX & SWT 5
K Hyperlink als Datei identifizieren AWT, Swing, JavaFX & SWT 2
S Jar-Datei funktioniert nicht richtig AWT, Swing, JavaFX & SWT 3
1 Laden einer Datei zur Echtzeit Darstellen AWT, Swing, JavaFX & SWT 7
P Problem bei Datei zur Verwaltung von Tabs AWT, Swing, JavaFX & SWT 5
F png-Datei erstellen und einzelne Pixel schreiben AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen

Neue Themen


Oben