Als ich mit Eclipce eine App mit einem Framework namens JavaFX erstellte und die fertige App als JAR-Datei ausführte, konnte sie nicht geöffnet werden. Stattdessen wurde der folgende Fehler angezeigt.
Befehlszeilenbildschirm
>java -jar test.bat
Graphics Device initialization failed for : d3d, sw
Error initializing QuantumRenderer: no suitable pipeline found
java.lang.RuntimeException: java.lang.RuntimeException: Error initializing QuantumRenderer: no suitable pipeline found
at com.sun.javafx.tk.quantum.QuantumRenderer.getInstance(QuantumRenderer.java:280)
at com.sun.javafx.tk.quantum.QuantumToolkit.init(QuantumToolkit.java:244)
at com.sun.javafx.tk.Toolkit.getToolkit(Toolkit.java:261)
at com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:267)
at com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:158)
at com.sun.javafx.application.LauncherImpl.startToolkit(LauncherImpl.java:658)
at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:678)
at com.sun.javafx.application.LauncherImpl.lambda$launchApplication$2(LauncherImpl.java:195)
at java.base/java.lang.Thread.run(Thread.java:832)
Caused by: java.lang.RuntimeException: Error initializing QuantumRenderer: no suitable pipeline found
at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.init(QuantumRenderer.java:94)
at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(QuantumRenderer.java:124)
... 1 more
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:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:564)
at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:61)
Caused by: java.lang.RuntimeException: No toolkit found
at com.sun.javafx.tk.Toolkit.getToolkit(Toolkit.java:273)
at com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:267)
at com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:158)
at com.sun.javafx.application.LauncherImpl.startToolkit(LauncherImpl.java:658)
at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:678)
at com.sun.javafx.application.LauncherImpl.lambda$launchApplication$2(LauncherImpl.java:195)
at java.base/java.lang.Thread.run(Thread.java:832)
Die Ursache für diesen Fehler ist, dass er nicht über die Umgebungsvariable __ übergeben wird.
Legen Sie bei Verwendung von Java die Umgebungsvariablen "PATH" und "JAVA_HOME" im Ordnerpfad des OpenSDK fest. Ebenso musste ich bei Verwendung des Frameworks den Ordnerpfad des Frameworks zur Umgebungsvariablen "PATH" hinzufügen.
Das Einrichten von JavaFX war so einfach wie das Öffnen der Systemumgebungsvariablen für Windows-Einstellungen und das Hinzufügen des Pfads zum Ordner bin des JavaFX SDK-Ordners zur dortigen PATH-Variablen.
Diese "Keine geeignete Pipeline gefunden" ist in anderen Frameworks identisch, wenn die Umgebungsvariable falsch festgelegt ist. Wenn Sie diesen Fehler erhalten, stellen Sie sicher, dass Sie die Umgebungsvariablen vermuten.
Recommended Posts