Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8171450

JavaFX native libraries are no longer loaded after fix for JDK-8066474

XMLWordPrintable

      The fix for JDK-8066474 breaks deployment on Linux, including JCP. It also breaks all JavaFX applications. Both fail on start up when the first attempt to load any native libraries.

      Here is the JavaFX failure:

      $ java -jar Ensemble8.jar

      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:221)
      at javafx.graphics/com.sun.javafx.tk.Toolkit.getToolkit(Toolkit.java:216)
      at javafx.graphics/com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:253)
      at javafx.graphics/com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:154)
      at javafx.graphics/com.sun.javafx.application.LauncherImpl.startToolkit(LauncherImpl.java:744)
      at javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:427)
      at javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:381)
      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:538)
      at java.base/sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:899)
      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:538)
      at java.base/sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:899)
      Caused by: java.lang.RuntimeException: No toolkit found
      at javafx.graphics/com.sun.javafx.tk.Toolkit.getToolkit(Toolkit.java:228)
      at javafx.graphics/com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:253)
      at javafx.graphics/com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:154)
      at javafx.graphics/com.sun.javafx.application.LauncherImpl.startToolkit(LauncherImpl.java:744)
      at javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:427)
      at javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:381)
      ... 5 more



      If I work around this by including $JAVA_HOME/lib/amd64 in java.library.path, the deploy code itself fails with the following:

      $ java -m jdk.deploy.controlpanel/com.sun.deploy.jcp.Main

      kcr@beethoven:~/javafx/9-kcr/jfx/rt-closed/toys$ cat /tmp/doa-jcp.logException in Application start method
      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:538)
      at javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:482)
      at javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:381)
      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:538)
      at java.base/sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:899)
      Caused by: java.lang.RuntimeException: Exception in Application start method
      at javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:986)
      at javafx.graphics/com.sun.javafx.application.LauncherImpl.lambda$launchApplication$2(LauncherImpl.java:200)
      at java.base/java.lang.Thread.run(Thread.java:844)
      Caused by: java.lang.UnsatisfiedLinkError: com.sun.deploy.config.UnixPlatform.getEnv(Ljava/lang/String;)Ljava/lang/String;
      at jdk.deploy@9-internal/com.sun.deploy.config.UnixPlatform.getEnv(Native Method)
      at jdk.deploy@9-internal/com.sun.deploy.config.UnixPlatform.getSessionSpecificString(UnixPlatform.java:199)
      at jdk.deploy@9-internal/com.sun.deploy.si.SingleInstanceImpl.addSingleInstanceListener(SingleInstanceImpl.java:60)
      at jdk.deploy.controlpanel@9-internal/com.sun.deploy.jcp.Main.start(Main.java:42)
      at javafx.graphics/com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$9(LauncherImpl.java:932)
      at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runAndWait$11(PlatformImpl.java:449)
      at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$9(PlatformImpl.java:418)
      at java.base/java.security.AccessController.doPrivileged(Native Method)
      at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:417)
      at javafx.graphics/com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96)
      at javafx.graphics/com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method)
      at javafx.graphics/com.sun.glass.ui.gtk.GtkApplication.lambda$runLoop$11(GtkApplication.java:277)
      ... 1 more
      Exception running application com.sun.deploy.jcp.Main

            kcr Kevin Rushforth
            kcr Kevin Rushforth
            Votes:
            0 Vote for this issue
            Watchers:
            7 Start watching this issue

              Created:
              Updated:
              Resolved: