JavaFX java.lang.RuntimeException: Error initializing QuantumRenderer: no suitable pipeline found

morry329

Mitglied
Ich muss ein paar Programmen auf JavaFX laufen lassen, aber JavaFX aufsetzen funktionierte bisher nicht. Ich habe ein Youtube-Tutorial gefolgt, gegooglt usw, aber mir wurde den folgende langen Fehlerzeilen angezeigt. Vielleicht kann jemand mir sagen, wo es schief gelaufen ist?

Java:
/Users/annamusterfrau/Library/Java/JavaVirtualMachines/temurin-17.0.4.1/Contents/Home/bin/java --module-path /Users/annamusterfrau/Downloads/javafx-sdk-21.0.1/lib --add-modules=javafx.controls,javafx.fxml -Djava.library.path=/Users/annamusterfrau/Downloads/javafx-sdk-21.0.1/lib -javaagent:/Applications/IntelliJ IDEA Edu 2.app/Contents/lib/idea_rt.jar=51821:/Applications/IntelliJ IDEA Edu 2.app/Contents/bin -Dfile.encoding=UTF-8 -classpath /Users/annamusterfrau/ProgIIJavaFX/out/production/ProgIIJavaFX:/Users/annamusterfrau/.m2/repository/org/openjfx/javafx-fxml/17/javafx-fxml-17.jar:/Users/annamusterfrau/.m2/repository/org/openjfx/javafx-fxml/17/javafx-fxml-17-mac.jar:/Users/annamusterfrau/.m2/repository/org/openjfx/javafx-controls/17/javafx-controls-17.jar:/Users/annamusterfrau/.m2/repository/org/openjfx/javafx-controls/17/javafx-controls-17-mac.jar:/Users/annamusterfrau/.m2/repository/org/openjfx/javafx-graphics/17/javafx-graphics-17.jar:/Users/annamusterfrau/.m2/repository/org/openjfx/javafx-graphics/17/javafx-graphics-17-mac.jar:/Users/annamusterfrau/.m2/repository/org/openjfx/javafx-base/17/javafx-base-17.jar:/Users/annamusterfrau/.m2/repository/org/openjfx/javafx-base/17/javafx-base-17-mac.jar:/Users/annamusterfrau/Downloads/javafx-sdk-21.0.1/lib/javafx-swt.jar:/Users/annamusterfrau/Downloads/javafx-sdk-21.0.1/lib/javafx.web.jar:/Users/annamusterfrau/Downloads/javafx-sdk-21.0.1/lib/javafx.base.jar:/Users/annamusterfrau/Downloads/javafx-sdk-21.0.1/lib/javafx.fxml.jar:/Users/annamusterfrau/Downloads/javafx-sdk-21.0.1/lib/javafx.media.jar:/Users/annamusterfrau/Downloads/javafx-sdk-21.0.1/lib/javafx.swing.jar:/Users/annamusterfrau/Downloads/javafx-sdk-21.0.1/lib/javafx.controls.jar:/Users/annamusterfrau/Downloads/javafx-sdk-21.0.1/lib/javafx.graphics.jar sample.Main
Graphics Device initialization failed for :  es2, sw
Error initializing QuantumRenderer: no suitable pipeline found
java.lang.RuntimeException: java.lang.RuntimeException: Error initializing QuantumRenderer: no suitable pipeline found
    at javafx.graphics@21.0.1/com.sun.javafx.tk.quantum.QuantumRenderer.getInstance(QuantumRenderer.java:283)
    at javafx.graphics@21.0.1/com.sun.javafx.tk.quantum.QuantumToolkit.init(QuantumToolkit.java:253)
    at javafx.graphics@21.0.1/com.sun.javafx.tk.Toolkit.getToolkit(Toolkit.java:263)
    at javafx.graphics@21.0.1/com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:290)
    at javafx.graphics@21.0.1/com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:162)
    at javafx.graphics@21.0.1/com.sun.javafx.application.LauncherImpl.startToolkit(LauncherImpl.java:651)
    at javafx.graphics@21.0.1/com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:409)
    at javafx.graphics@21.0.1/com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:364)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:568)
    at java.base/sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:1082)
Caused by: java.lang.RuntimeException: Error initializing QuantumRenderer: no suitable pipeline found
    at javafx.graphics@21.0.1/com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.init(QuantumRenderer.java:95)
    at javafx.graphics@21.0.1/com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(QuantumRenderer.java:125)
    at java.base/java.lang.Thread.run(Thread.java:833)
Exception in thread "main" java.lang.reflect.InvocationTargetException
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:568)
    at java.base/sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:1082)
Caused by: java.lang.RuntimeException: No toolkit found
    at javafx.graphics@21.0.1/com.sun.javafx.tk.Toolkit.getToolkit(Toolkit.java:275)
    at javafx.graphics@21.0.1/com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:290)
    at javafx.graphics@21.0.1/com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:162)
    at javafx.graphics@21.0.1/com.sun.javafx.application.LauncherImpl.startToolkit(LauncherImpl.java:651)
    at javafx.graphics@21.0.1/com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:409)
    at javafx.graphics@21.0.1/com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:364)
    ... 5 more

Process finished with exit code 1
 
Kannst du schreiben, was du ganz genau gemacht hast? Das sieht erst einmal danach aus, dass du in den jar Files nicht das passende Toolkit hast. JavaFX hat jar Files, die Plattform spezifisch sind.
 
Kannst du schreiben, was du ganz genau gemacht hast? Das sieht erst einmal danach aus, dass du in den jar Files nicht das passende Toolkit hast. JavaFX hat jar Files, die Plattform spezifisch sind.
Ich habe nur dieses Tutorium gefolgt
Dort wird man weitergeleitet, die VM-Option anzugeben: https://openjfx.io/openjfx-docs/ (s. 4. Add VM options). Den Pfad wo der lib-Ordner im Finder liegt, musste selber angegeben in der VM-Option Feld eingegeben werden. Ich weiß nicht ob der Pfad falsch gegeben wurde. Sonst keine Ahnung woran der ganzen Fehler liegt.
 
Zuletzt bearbeitet:
ok, danke. So würde ich es auf keinen Fall machen! Da sind Probleme schon vorprogrammiert.

Wenn man das Problem lösen wollte, dann wäre mein erster Ansatz: Hast Du überall die gleiche Version? Also alles 64Bit? Oder alles 32Bit? Aber die Einstellungen sind komplex und an so vielen Stellen zu prüfen ... das ist viel Aufwand und das Ergebnis ist nicht befriedigend, denn du hast dann ein Projekt, das nur bei Dir läuft. Entweder Du gibst die ganzen Konfigurationen weiter - dann stimmen sie ggf. nicht oder jeder muss diese ebenso machen.

In der Entwicklung wird so in der Regel nicht vorgegangen. In der Regel geht man so vor, dass
a) möglichst wenig installiert werden muss (Dann kann man ganz schnell anfangen zu entwickeln)
b) so wenig wie möglich konfiguriert werden muss (Weniger Möglichkeiten, Fehler zu machen, Entwickler müssen weniger lernen um loslegen zu können.)

Daher ganz klarer Tipp: Nutze Maven oder Gradle. Ich würde zu Maven raten, da dies deutlich weniger Komplexität aufweist.

Starten kannst Du da ganz einfach:
Option 1) Du kannst Dir als Startpunkt einfach von GitHub das JavaFX Projekt holen: kneitzel/JavaFXMavenApp: Simple JavaFX App with Maven (github.com) Das ist leider schon etwas komplexer, aber hat direkt einiges mit drin wie die Möglichkeit etwas zu bauen, dass man weiter geben kann oder statische Codeanalysen. Das meiste kann man ignorieren am Anfang also nicht abschrecken lassen.

Option 2) Du scheinst IntelliJ zu verwenden. Da kannst Du direkt ein JavaFX Projekt mit Maven erstellen lassen. Da wird dann nicht so viel drin sein sondern in erster Linie das openjfx/JavaFX Plugin. Damit kannst du direkt loslegen aber wenn du dann etwas weiter geben willst als fertiges Produkt, dann wird es etwas schwerer bzw. dann musst du selbst diverse Dinge einbauen....

Egal, welchen Weg zu wählst: Bei beiden wird es relativ einfach sein, Dich zu unterstützen, da in erster Linie die pom.xml ausgetauscht werden muss mit den Projekteinstellungen. Das geht im Forum sehr gut.
 
Ich habe nur dieses Tutorium gefolgt

ok, danke. So würde ich es auf keinen Fall machen! Da sind Probleme schon vorprogrammiert.

Wenn man das Problem lösen wollte, dann wäre mein erster Ansatz: Hast Du überall die gleiche Version? Also alles 64Bit? Oder alles 32Bit? Aber die Einstellungen sind komplex und an so vielen Stellen zu prüfen ... das ist viel Aufwand und das Ergebnis ist nicht befriedigend, denn du hast dann ein Projekt, das nur bei Dir läuft. Entweder Du gibst die ganzen Konfigurationen weiter - dann stimmen sie ggf. nicht oder jeder muss diese ebenso machen.

In der Entwicklung wird so in der Regel nicht vorgegangen. In der Regel geht man so vor, dass
a) möglichst wenig installiert werden muss (Dann kann man ganz schnell anfangen zu entwickeln)
b) so wenig wie möglich konfiguriert werden muss (Weniger Möglichkeiten, Fehler zu machen, Entwickler müssen weniger lernen um loslegen zu können.)

Daher ganz klarer Tipp: Nutze Maven oder Gradle. Ich würde zu Maven raten, da dies deutlich weniger Komplexität aufweist.

Starten kannst Du da ganz einfach:
Option 1) Du kannst Dir als Startpunkt einfach von GitHub das JavaFX Projekt holen: kneitzel/JavaFXMavenApp: Simple JavaFX App with Maven (github.com) Das ist leider schon etwas komplexer, aber hat direkt einiges mit drin wie die Möglichkeit etwas zu bauen, dass man weiter geben kann oder statische Codeanalysen. Das meiste kann man ignorieren am Anfang also nicht abschrecken lassen.

Option 2) Du scheinst IntelliJ zu verwenden. Da kannst Du direkt ein JavaFX Projekt mit Maven erstellen lassen. Da wird dann nicht so viel drin sein sondern in erster Linie das openjfx/JavaFX Plugin. Damit kannst du direkt loslegen aber wenn du dann etwas weiter geben willst als fertiges Produkt, dann wird es etwas schwerer bzw. dann musst du selbst diverse Dinge einbauen....

Egal, welchen Weg zu wählst: Bei beiden wird es relativ einfach sein, Dich zu unterstützen, da in erster Linie die pom.xml ausgetauscht werden muss mit den Projekteinstellungen. Das geht im Forum sehr gut.
Herzlichen Dank für die ausführliche Hilfestellung - hier die Bericht für die andere Forum-Leser. ich habe letztendlich Option 2) gemacht und ein weiteres Problem wurde im Laufe der Zeit eingetreten: Zwar habe ich vorher die veraltete IDE (Intellij Edu 2021) gecodet, und musste die neueste Intellij-Community version installieren. Nach der Installierung habe ich ein neues Projekt mit Maven erstellt. Da endlich lässt die IDE das Code einwandfrei kompilieren.
 
Etwas spät, aber vielleicht noch im Hinterkopf behalten: Es gibt keinen offiziellen Support für JavaFX 32 Bit auf Windows ab Version 21.
Das selbe gilt für das JDK/die JRE selbst auch - auch wenn es 3rd-Party Distributionen gibt, die es noch unterstützen, wie z.B. BellSoft Liberica.

Ich bin mit der 32Bit Variante allerdings ganz schön ins rudern gekommen, da im Liberica JDK sogar manche Methoden fehlen (JavaFX WebView kennt keine Methode zum Setzen des farblichen Hintergrunds). Auch kann man keine Maven/Gradle-Deps auf JavaFX mehr nutzen (wenn man Liberica Full verwendet ist es ins JDK includiert), da auf dem Maven Repos keine offiziellen JavaFX 21 Artefakte mehr existieren.
 

Zurück
Oben