JavaFX Wayland Support mit Gradle

Bela B.

Aktives Mitglied
Hallo zusammen,

ich habe gerade Probleme mein Projekt in intelliJ richtig aufzusetzen.
Vorab:
Ich benutze Fedora 31, was kein X11 mehr bietet.

Mein Problem ist folgendes:
Mein in intelliJ als Gradle-Projekt aufgesetzten JavaFX Programm stürzt beim Ausführen mit folgendem Fehler ab:
Code:
Execution failed for task ':Starter.main()'.
> Process 'command '/app/idea-IC/jbr/bin/java'' finished with non-zero exit value 134

Der Grund dafür ist:
Code:
20:52:19: Executing task 'Starter.main()'...

> Task :compileJava UP-TO-DATE
> Task :processResources UP-TO-DATE
> Task :classes UP-TO-DATE

> Task :Starter.main() FAILED
Picked up JAVA_TOOL_OPTIONS: -Djava.io.tmpdir=/home/dr_cox1911/.var/app/com.jetbrains.IntelliJ-IDEA-Community/cache/tmp/
checking GTK version 2
trying GTK library libgtk-x11-2.0.so.0
trying GTK library libgtk-x11-2.0.so
trying GTK library libgtk-3.so.0
using GTK library version 3 set libgtk-3.so.0
Glass GTK library to load is glassgtk3
loaded gdk_x11_display_set_window_scale

(java:3785): Gdk-CRITICAL **: 20:52:19.777: gdk_x11_display_set_window_scale: assertion 'GDK_IS_X11_DISPLAY (display)' failed

Im Internet habe ich gelesen, dass man die verwendete GTK-Version mit dem JVM-Parameter -Djdk.gtk.version=2 auf GTK2 forcieren und somit das Problem löst, nur habe ich das bereits probiert (der Crashauszug oben ist bereits mit diesem JVM-Parameter und zur Überprüfung noch mit dem -Djdk.gtk.verbose=true).

Was ich allerdings an der Sache überhaupt nicht verstehe:
Erstelle ich in intelliJ direkt ein JavaFX Programm, dann kann ich das Programm ganz normal starten.
Die entsprechende Ausgabe mit -Djdk.gtk.verbose=true ist:
Code:
/app/idea-IC/jbr/bin/java -Djdk.gtk.verbose=true -Djava.library.path=/mnt/Data/40_Coding/javafx-sdk-11.0.2/lib -javaagent:/app/idea-IC/lib/idea_rt.jar=44759:/app/idea-IC/bin -Dfile.encoding=UTF-8 -classpath /mnt/Data/40_Coding/java/WidgetShortcut/out/production/WidgetShortcut:/mnt/Data/40_Coding/javafx-sdk-11.0.2/lib/src.zip:/mnt/Data/40_Coding/javafx-sdk-11.0.2/lib/javafx-swt.jar:/mnt/Data/40_Coding/javafx-sdk-11.0.2/lib/javafx.web.jar:/mnt/Data/40_Coding/javafx-sdk-11.0.2/lib/javafx.base.jar:/mnt/Data/40_Coding/javafx-sdk-11.0.2/lib/javafx.fxml.jar:/mnt/Data/40_Coding/javafx-sdk-11.0.2/lib/javafx.media.jar:/mnt/Data/40_Coding/javafx-sdk-11.0.2/lib/javafx.swing.jar:/mnt/Data/40_Coding/javafx-sdk-11.0.2/lib/javafx.controls.jar:/mnt/Data/40_Coding/javafx-sdk-11.0.2/lib/javafx.graphics.jar sample.Main
Picked up JAVA_TOOL_OPTIONS: -Djava.io.tmpdir=/home/dr_cox1911/.var/app/com.jetbrains.IntelliJ-IDEA-Community/cache/tmp/
checking GTK version 2
trying GTK library libgtk-x11-2.0.so.0
trying GTK library libgtk-x11-2.0.so
trying GTK library libgtk-3.so.0
using GTK library version 3 set libgtk-3.so.0
Glass GTK library to load is glassgtk3
Gtk-Message: 20:33:52.920: Failed to load module "canberra-gtk-module"
Gtk-Message: 20:33:52.920: Failed to load module "pk-gtk-module"
Gtk-Message: 20:33:52.920: Failed to load module "canberra-gtk-module"
Gtk-Message: 20:33:52.920: Failed to load module "pk-gtk-module"
loaded gdk_x11_display_set_window_scale
loaded g_settings_schema_source_get_default
loaded g_settings_schema_source_lookup
loaded g_settings_schema_has_key
found schema 'org.gnome.desktop.interface' and key 'scaling-factor'
loaded g_settings_schema_unref
found schema 'org.gnome.desktop.interface' and key 'scaling-factor'
found schema 'org.gnome.desktop.interface' and key 'scaling-factor'
found schema 'org.gnome.desktop.interface' and key 'scaling-factor'
found schema 'org.gnome.desktop.interface' and key 'scaling-factor'
found schema 'org.gnome.desktop.interface' and key 'scaling-factor'
found schema 'org.gnome.desktop.interface' and key 'scaling-factor'
found schema 'org.gnome.desktop.interface' and key 'scaling-factor'
found schema 'org.gnome.desktop.interface' and key 'scaling-factor'
found schema 'org.gnome.desktop.interface' and key 'scaling-factor'
found schema 'org.gnome.desktop.interface' and key 'scaling-factor'
found schema 'org.gnome.desktop.interface' and key 'scaling-factor'
found schema 'org.gnome.desktop.interface' and key 'scaling-factor'
found schema 'org.gnome.desktop.interface' and key 'scaling-factor'

Warum funktioniert es also als direktes JavaFX-Projekt, aber nicht als Gradle-Projekt?
 

dzim

Top Contributor
Wie genau startest du es? Hast du Gradle das als Runtime-Parameter mal mitgegeben? Ich glaube, gradle run startet die Applikation im Kontext von Gradle - also müssen dem beim Start die notwendigen Parameter mitgegeben werden.

Leider kann ich außer mit Vermutungen nicht wirklich weiterhelfen...
 

Bela B.

Aktives Mitglied
Gebe die Parameter direkt über den IntelliJ Dialog für die Startconfigs an.
Die Parameter werden denke ich aber auch beim Starten der Anwendung so verwendet, denn sonst würde auch der Verbose-Parameter nicht angenommen werden. Auch wenn ich statt GTK2 GTK3 forciere ändert sich entsprechend die Ausgabe.
 

Neue Themen


Oben