JavaFX Per Jpacke erstellte exe startet nicht

fireGlurak

Aktives Mitglied
Nabend,

bin leider etwas verzweifelt, und muss deshalb hier einmal nachfragen:
Ich habe eine javaFx-Anwendung (benutze maven), zu der ich nun über jPackage eine ausführbare datei erstellen will. Um eine eigene Laufzeitumgebung zu erstellen, benutze ich jlink.

Mein vorgehen:
Laufzeitumgebung erstellen

jlink --module-path "C:/Program Files/Java/jdk-21/jmods;C:/Program Files/javafx-sdk-22.0.2/lib" --add-modules java.base,javafx.controls,javafx.fxml --output custom-runtime

Anschließend über jPackage die exe erstellen
jpackage --input target/ --main-jar myProject-1.0-SNAPSHOT.jar --name demo --type exe --main-class com.example.Dashboard

Nach der Ausführung der Datei kommt zunächst die Meldung, dass der Hesteller unbekannt ist und ob ich die Anwendung wirklich ausführen möchte.
Nach Klick auf "Ja" passiert leider nichts weiter. Bin hier schon seit Stunde mit ChatGpt am gange um zu versuchen das Problem zu lösen, aber das will noch nicht wirklich.

Über
java --module-path "C:/Program Files/javafx-sdk-22.0.2/lib" --add-modules javafx.controls,javafx.fxml -jar target/myProject-1.0-SNAPSHOT.jar
kann ich problemlos die Anwendung starten. Die Jar scheint also in Ordnung zu sein.

Über "YourApp.exe --java-options "-Dprism.verbose=true"" soll man wohl debuggen können, aber wenn ich dies in der Konsole verwende bekomme ich keine weitere Meldung.

Wo könnte hier ein Fehler liegen? Was kann ich versuchen? Habe leider nicht wirklich einen Anhaltspunkt um den Fehler weiter einzugrenzen :/
 

KonradN

Super-Moderator
Mitarbeiter
jpackage hat auch den Parameter --win-console, den Parameter solltest Du mit setzen. Dann startet das Ergebnis nicht losgelöst von der Konsole sondern in einer Konsole, d.h. Du kannst es auf der Konsole starten und Du bekommst alle Meldungen zu sehen, die sonst einfach im Nirvana landen würden.

Das wäre so der erste Schritt um das Problem zu identifizieren.

Irgendwelche Möglichkeiten werde ich jetzt nicht nennen - es gibt aber einige typische Probleme.
 

fireGlurak

Aktives Mitglied
Moin,
danke erstmal für den Tipp, allerdings hat mich das auch nicht weitergebracht.
jpackage --input target/ --main-jar myProject-1.0-SNAPSHOT.jar --name demo --type exe --module-path "C:/Program Files/javafx-sdk-22.0.2/lib" --add-modules javafx.controls,javafx.fxml --main-class com.example.Dashboard --win-console

Es tut sich in der Konsole dabei nichts, die exe kann immer noch nicht ausgeführt werden. Hier bekomme ich dann kurz die Meldung "Please wait while Windows configures demo" und anschließend passiert nichts. Ich habe auch mal ein Blick in die Windows Ereignisanzeige geworfen, aber das sah auch soweit in Ordnung aus
Das Produkt wurde durch Windows Installer installiert. Produktname: demo. Produktversion: 1.0. Produktsprache: 1033. Hersteller: Unbekannt. Erfolg- bzw. Fehlerstatus der Installation: 0.

Ich hatte auch versucht die exe über die Konsole zu starten und mir dabei eine log.txt zu erzeugen, um auf mögliche Fehler hingewiesen zu werden

demo-1.0.exe --java-options "-Dprism.verbose=true -Djavafx.verbose=true" > log.txt 2>&1

Die log.txt ist leider komplett leer nach der Ausführung.
 

KonradN

Super-Moderator
Mitarbeiter
Das liegt einfach daran, dass Du einen Installer gebaut hast und kein AppImage. Also alles, was die exe macht, ist etwas zu installieren und nicht Dein Programm zu starten.

Also bei jpackage Aufruf müsstest Du ändern:
  • --app-image <Verzeichnis> hinzufügen
  • das -type exe kann weg.

Das dürften wohl die notwendigen Änderungen sein, wobei ich das schon lange nicht mehr manuell verwendet habe...
 

fireGlurak

Aktives Mitglied
Vielen Dank, habe es jetzt hinbekommen!
mit dem AppImage konnte ich den Fehlerkreis etwas verringern und es lag letztendlich daran, dass in meiner über jLink erstellen Laufzeitumgebung bestimmt dll´s gefehlt haben, die aus irgendeinem Grund aus dem JavaFx SDK nicht gezogen wurden. Habe die dann einfach manuell rüberkopiert und war dann in der Lage die App zu starten.
 
Ähnliche Java Themen

Ähnliche Java Themen

Neue Themen


Oben