Grundsätzliche Frage zur Verwendung von Java Versionen??

MiMa

Top Contributor
Aktuell stelle ich mir die Frage ob ich Java 20 überhaupt weiter verwenden soll?
Ich würde gerne meine JavaFX Applikation in ein Lauffähiges exe für Windows erstellen lassen.
Am besten direkt aus intelliJ um nicht unbedingt auf dem PC noch igendwelche Java-FX Umgebungen installieren zu müssen.
Scheinbar gibt es einige Probleme und das und jenes funktioniert nicht??

Programm die ich selbst nutze wie Oxygen XML Editor:
Auf der DownloadSeite von Oxygen XML Editor stehen vermerke wie

Windows 64-bit (Includes OpenJDK Temurin* 17.0.11)

Wenn ich mal in die Umgebung von VisualParadigm schaue verdendet der Entwickler ebenfalls openJDK Temurin in der Version 11.

Daher frage ich mal ob es sinn macht auf die Version 17 zurück zu schrauben um dann eigene ausführbare Programme erstellen zu können.
Ich hatte mich schon mal damit beschäftigt, bin aber mit dem Problem überhaupt nicht weitergekommen.
 
Also generell sollte man eine LTS Version (8, 11, 17, 21) oder die letzte/aktuelle Version (derzeit 22) nehmen.

Je neuer die Java Version ist, desto eher hat man damit Probleme. Ich selbst habe ja auf GitHub zwei Templates und die hatten recht lange Probleme mit Java 21 (Zuletzt war es nur noch das PMD Plugin - keine Ahnung, ob das inzwischen auch aktualisiert wurde).

Das sollte man aber einmal in Ruhe durchtesten. Ich werde meine Templates bei Gelegenheit auch auf Java 21 umsetzen und sicher stellen, dass diese funktionieren.

Ich würde gerne meine JavaFX Applikation in ein Lauffähiges exe für Windows erstellen lassen.
Hier ist die Frage, was Du genau meinst. Wenn es lediglich JPackage beschreibt: Das sollte mit Java 21 gut funktionieren.

Solltest Du aber wirklich nicht nur die "Paketierung mit einer JRE + benötigter Module" meinen sondern ein native Übersetzen, dann wäre ein aktuelles GraalVM mit NativeImage zu prüfen. Das gibt es derzeit als Java 17, 21 und 22.

Falls Du noch auf meine Templates setzen solltest / wolltest: Da wäre mein Ratschlag, im Augenblick noch auf 17 zu bleiben und zu warten, bis ich das auch für Java 21 fertig habe. Java 22 würde ich dann erst einmal von abraten, denn neue Versionen haben oft genug Probleme mit Maven Plugins, die direkt auf die erstellen Klassen zugreifen. (Und wie PMD gezeigt hat, kann die Aktualisierung des Plugins sich etwas ziehen - evtl. ein Grund, da ganz drauf zu verzichten und nur noch auf breiter genutzte Lösungen zu setzen....)
 
Aktuell führe ich mein JavaFX Programm über IntelliJ aus aber das Ziel wäre eine exe Datei für Windows zu erstellen, bei der alles enthalten sein soll was das Programm benötigt um Ausgeführt zu werden. Wie das genau funktioniert weis ich nicht da ich mich mit Programminstallation, Setup und Ausführbare Java Programme noch nicht beschäftigt habe. Dazu gibt es so gut wie keine Literatur. Ich wollte mal vorfülen wie das funktioniert, was aber noch nicht so eilig ist, das ich es jetzt unbedingt haben müsste. Mein Aktuells Projektbraucht noch etwas und ich denke das ich noch auf V21 warten kann.
Ich hätte das aber schon mal ausprobieren können mit meinen beiden kleinen JavaFX Tools mit denen ich meinen Wust von .java Dateien automatisiert bereinigt bekommen habe.
 
Also meine Empfehlung ist in dem Zusammenhang:
  • Nutze Maven für seine Projekte. Dann bist du unabhängig von eine konkreten Entwicklungsumgebung (Gradle geht natürlich auch, aber das kenne ich nicht so gut)
  • Zur Weitergabe erstellst Du ein sogenanntes Image. Dazu dienen JLink und JPackage. JLink benötigt aber eine Modulbeschreibung und das kann teilweise alles erschweren, da manche Abhängigkeiten noch keine solche haben. Aber es ist möglich, JPackage direkt zu nutzen und da kann man dann auch auf die Modulbeschreibung verzichten.

Unter
habe ich dieses Template Projekt für JavaFX Applikationen. (Das aber aktuell eine Überarbeitung benötigt!)

Bezüglich dieses Templates sind mir aber einige Zweifel gekommen. Ich hatte da ursprünglich die Absicht, da einiges mehr direkt einzubauen. So halte ich Codeanalysen für sehr wichtig aber durch die Probleme mit dem PMD Plugin und meine guten Erfahrungen mit SonarLint zweifel ich etwas an dem Sinn... Da muss ich also noch generell etwas mehr über die einzelnen Optionen nachdenken und dann etwas "drüber schlafen" und mir selbst klar zu werden, was ich da jemandem empfehlen würde. (Die Idee des Templates ist ja, dass ich da Leuten ans Herz legen will: "Kopiere Dir das Projekt einfach und adaptiere es. Damit hast Du eine solide Grundlage für ein (professionelles) Maven Projekt.") Das nur als Erläuterung, wieso sich da fast nichts getan hat an der Front.
 

Zurück
Oben