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

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

    XMLWordPrintable

Details

    Description

      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

      Attachments

        Issue Links

          Activity

            People

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

              Dates

                Created:
                Updated:
                Resolved: