Konsolidieren Sie JavaFX-Apps in JAR-Dateien, die auf Java 8/11 funktionieren

Fazit

JavaFX (nicht in Java 11 enthalten)

JavaFX ist eine plattformübergreifende GUI-Bibliothek, die auf JVM ausgeführt wird. Die Bibliothek ist jedoch nicht mehr in Java 11 enthalten und wurde stattdessen als OpenJFX in eine externe Bibliothek umgewandelt.

Das Problem hier ist "Welche Java-Version unterstützen Sie?" Ich möchte Java 11 unterstützen, kann Java 8 jedoch nicht einfach abschneiden (Kostenlose Oracle-Updates für einzelne Benutzer werden bis Ende 2020 fortgesetzt java / eol-135779-ja.html)).

Fat Jar, das sowohl auf Java8 / 11 läuft

Die Lösung für dieses Problem ist Fat Jar, das einfach alle OpenJFX 11-Bibliotheken in die JAR-Datei enthält.

Details finden Sie unter Erste Schritte mit JavaFX 11> Laufzeitabbilder> Nicht modulares Projekt, jedoch mit Gradle (für normale JAR-Task-Einstellungen). (Zusätzlich) Fügen Sie die folgenden Spezifikationen hinzu.

build.gradle


compileOnly "org.openjfx:javafx-graphics:$javafx.version:win"
compileOnly "org.openjfx:javafx-graphics:$javafx.version:linux"
compileOnly "org.openjfx:javafx-graphics:$javafx.version:mac"

Und wenn Sie mit JDK11 bauen, haben Sie ein dickes Glas, das mit Java8 / 11 funktioniert.

Recommended Posts

Konsolidieren Sie JavaFX-Apps in JAR-Dateien, die auf Java 8/11 funktionieren
Erstellen Sie ein Docker-Image, um eine einfache Java-App auszuführen
Erstellen einer kompakten Java-Umgebung, die unter Docker ausgeführt wird
Stellen Sie eine Java-Web-App für Heroku bereit
So stellen Sie eine einfache Java-Servlet-App auf Heroku bereit
[Anfänger] Android App, die Bälle mit Sensoren rollt [Java]
So stellen Sie eine Kotlin (Java) -App auf AWS fargate bereit
Ich habe eine Selenium-Beispiel-App erstellt, die mehrere Browser (Chrome, IE, Firefox) unterstützt, die unter Java ausgeführt werden.
So stellen Sie eine App bereit, die ein lokales Glas auf Heroku verweist