Java-FX 11. Missing toolkit? Error initializing QuantumRenderer

Kevin Rushforth kevin.rushforth at oracle.com
Mon Oct 15 20:13:13 UTC 2018


There is no more jfxrt.jar as of JDK 9, so no, that isn't the problem. 
It looks like it can't load the native libraries. Two things to try to 
get more information:

1. Run with "-Dprism.verbose=true" and "-Djavafx.verbose=true" and see 
if that gives a better error message.

2. Check to see that the .so files are in "/opt/javafx-sdk-11/lib" and 
that you have the dependent libraries on your system. For example:

$ ldd /opt/javafx-sdk-11/lib/prism_es2.so

-- Kevin


On 10/15/2018 12:36 PM, Andrew Munn wrote:
> I'm using x2go to connect to a session running the Mate window manager and
> seein this error.  Could it be related to a missing jfxrt.jar?  I don't
> see that jar under /opt/javafx-sdk-11
>
> I'm starting my application with these:
>
> --add-opens javafx.fxml/javafx.fxml=ALL-UNNAMED"
> --illegal-access=permit"
> --module-path /opt/javafx-sdk-11/lib"
> --add-modules=javafx.controls,javafx.fxml,javafx.web,javafx.swing"
> --add-exports=javafx.base/com.sun.javafx.beans=ALL-UNNAMED"
> --add-exports=javafx.base/com.sun.javafx.reflect=ALL-UNNAMED"
> --add-exports=javafx.graphics/com.sun.javafx.util=ALL-UNNAMED"
> --add-exports=javafx.graphics/com.sun.glass.utils=ALL-UNNAMED"
> --add-exports=javafx.graphics/com.sun.javafx.tk=ALL-UNNAMED"
> -Djdk.gtk.version=2"  (worth a try?)
> -Dprism.verbose=true"
> ## add to classpath:
> CP=$CP:/opt/javafx-sdk-11/lib/*
>
>
> I'm not using the console but in case it matters, the video hardware is:
> # dmesg|grep g200
> [    5.129761] mgag200 0000:01:04.0: fb0: mgadrmfb frame buffer device
> [    5.224550] [drm] Initialized mgag200 1.0.0 20110418 for 0000:01:04.0 on minor 0
>
>
> java version "11" 2018-09-25
> Java(TM) SE Runtime Environment 18.9 (build 11+28)
> Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11+28, mixed mode)
> Prism pipeline init order: es2 sw
> Using Double Precision Marlin Rasterizer
> Using dirty region optimizations
> Not using texture mask for primitives
> Not forcing power of 2 sizes for textures
> Using hardware CLAMP_TO_ZERO mode
> Opting in for HiDPI pixel scaling
> Prism pipeline name = com.sun.prism.es2.ES2Pipeline
> GraphicsPipeline.createPipeline failed for com.sun.prism.es2.ES2Pipeline
> java.lang.ClassNotFoundException: com.sun.prism.es2.ES2Pipeline
>          at
> java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:582)
>          at
> java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
>          at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
>          at java.base/java.lang.Class.forName0(Native Method)
>          at java.base/java.lang.Class.forName(Class.java:315)
>          at
> javafx.graphics/com.sun.prism.GraphicsPipeline.createPipeline(GraphicsPipeline.java:187)
>          at
> javafx.graphics/com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.init(QuantumRenderer.java:91)
>          at
> javafx.graphics/com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(QuantumRenderer.java:124)
>          at java.base/java.lang.Thread.run(Thread.java:834)
> *** Fallback to Prism SW pipeline
> Prism pipeline name = com.sun.prism.sw.SWPipeline
> GraphicsPipeline.createPipeline failed for com.sun.prism.sw.SWPipeline
> java.lang.UnsatisfiedLinkError: no prism_sw in java.library.path: [.,
> /usr/java/packages/lib, /usr/lib64, /lib64, /lib, /usr/lib]
>          at
> java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2660)
>          at java.base/java.lang.Runtime.loadLibrary0(Runtime.java:829)
>          at java.base/java.lang.System.loadLibrary(System.java:1867)
>          at
> javafx.graphics/com.sun.glass.utils.NativeLibLoader.loadLibraryInternal(NativeLibLoader.java:150)
>          at
> javafx.graphics/com.sun.glass.utils.NativeLibLoader.loadLibrary(NativeLibLoader.java:52)
>          at
> javafx.graphics/com.sun.prism.sw.SWPipeline.lambda$static$0(SWPipeline.java:42)
>          at java.base/java.security.AccessController.doPrivileged(Native
> Method)
>          at
> javafx.graphics/com.sun.prism.sw.SWPipeline.<clinit>(SWPipeline.java:41)
>          at java.base/java.lang.Class.forName0(Native Method)
>          at java.base/java.lang.Class.forName(Class.java:315)
>          at
> javafx.graphics/com.sun.prism.GraphicsPipeline.createPipeline(GraphicsPipeline.java:187)
>          at
> javafx.graphics/com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.init(QuantumRenderer.java:91)
>          at
> javafx.graphics/com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(QuantumRenderer.java:124)
>          at java.base/java.lang.Thread.run(Thread.java:834)
> 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/com.sun.javafx.tk.quantum.QuantumRenderer.getInstance(QuantumRenderer.java:280)
>          at
> javafx.graphics/com.sun.javafx.tk.quantum.QuantumToolkit.init(QuantumToolkit.java:222)
>          at
> javafx.graphics/com.sun.javafx.tk.Toolkit.getToolkit(Toolkit.java:260)
>          at
> javafx.graphics/com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:267)
>          at
> javafx.graphics/com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:158)
>          at
> javafx.graphics/com.sun.javafx.application.LauncherImpl.startToolkit(LauncherImpl.java:658)
>          at
> javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:409)
>          at
> javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:363)
>          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:566)
>          at
> java.base/sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:1051)
> Caused by: java.lang.RuntimeException: Error initializing QuantumRenderer:
> no suitable pipeline found
>          at
> javafx.graphics/com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.init(QuantumRenderer.java:94)
>          at
> javafx.graphics/com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(QuantumRenderer.java:124)
>          at java.base/java.lang.Thread.run(Thread.java:834)
> 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:566)
>          at
> java.base/sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:1051)
> Caused by: java.lang.RuntimeException: No toolkit found
>          at
> javafx.graphics/com.sun.javafx.tk.Toolkit.getToolkit(Toolkit.java:272)
>          at
> javafx.graphics/com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:267)
>          at
> javafx.graphics/com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:158)
>          at
> javafx.graphics/com.sun.javafx.application.LauncherImpl.startToolkit(LauncherImpl.java:658)
>          at
> javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:409)
>          at
> javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:363)
>



More information about the openjfx-dev mailing list