tracked in https://github.com/javafxports/openjdk-jfx/issues/142. Tested on linux, not yet on mac/windows
On Thu, Jul 26, 2018 at 11:46 AM Johan Vos <[email protected]> wrote: > Hi Steve, > > That looks like a bug. The libPrefix and libSuffix are indeed not set in > cases where usingModules is true, which is only the case when the jrt > protocol is used. > It seems to me the prefix/suffix should always be computed. It doesn't > look right that they are computed inside the loadLibraryFullPath. But it > looks even worse that the "reallib" is calculated based on statements that > might not be reached, where it could have used System.mapLibraryName() > > I'll create an issue and a PR to fix this. > > Thanks for reporting, > > - Johan > > > On Thu, Jul 26, 2018 at 11:03 AM Steve Hruda <[email protected]> > wrote: > >> Hi, >> I created a custom runtime image (windows x64) for my JavaFX application >> and used the OpenJFX 11-ea+19 maven artifacts. >> >> I get the following exception if I try to execute my application: >> >> 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 >> >> 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:263) >> at >> >> javafx.graphics/com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:157) >> 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:564) >> at >> >> java.base/sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:941) >> 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:844) >> 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 >> >> java.base/sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:941) >> 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:263) >> at >> >> javafx.graphics/com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:157) >> 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) >> ... 5 more >> >> >> -Djavafx.verbose=true shows that JavaFX isn't able to load the native libs >> from the javafx-graphics jar. >> >> >> I debugged the NativeLibLoader and loadLibraryFromResource and >> installLibraryFromResource will be executed which is ok. But the >> *reallib *value for >> all dll's is wrong because of the empty *libSuffix*. >> >> e.g. the reallib value of *api-ms-win-core-console-l1-1-0* is >> */api-ms-win-core-console-l1-1-0* and not >> */api-ms-win-core-console-l1-1-0.dll* >> >> Is it intentional that *libPrefix *& *libSuffix *will not be set in case >> of >> the jrt protocol ? >> >> >> https://github.com/javafxports/openjdk-jfx/blob/c168ab56accd7e74d53737bc0832495dbc318e52/modules/javafx.graphics/src/main/java/com/sun/glass/utils/NativeLibLoader.java#L308 >> >> >> >> >> https://github.com/javafxports/openjdkjfx/blob/c168ab56accd7e74d53737bc0832495dbc318e52/modules/javafx.graphics/src/main/java/com/sun/glass/utils/NativeLibLoader.java#L338 >> >> >> >> >> Best Regards, >> Steve >> >
