-
Bug
-
Resolution: Fixed
-
P2
-
fx2.0.2
-
JavaFX 2.0.2 (b08). Mac OSX Lion, JVM 1.6.0_26 (64-bit), MacBook Pro
java.lang.UnsatisfiedLinkError is thrown when using jfxrt.jar and binaries (.so/.dll/.dylib files) in an OSGi environment on Mac OSX. In other words, the error occurs when jfxrt.jar and binaries are loaded through MANIFEST of another jar in an OSGi container. The problem is reproduced using JavaFX 2.0.2 (b08).
This is an OSGi-related issue because we do not see such an error when JavaFX is loaded from $CLASSPATH on Mac OSX.
This is a Mac-specific issue because we verified that JavaFX loads works in an OSGi container on Windows and Linux.
NativeLibLoader.loadLibraryFullPath() fails with the following exception:
java.lang.UnsatisfiedLinkError: Invalid URL for class: bundleresource://572.fwk1196330343/com/sun/javafx/runtime/NativeLibLoader.class
at com.sun.javafx.runtime.NativeLibLoader.loadLibraryFullPath(NativeLibLoader.java:118)
at com.sun.javafx.runtime.NativeLibLoader.loadLibraryInternal(NativeLibLoader.java:85)
at com.sun.javafx.runtime.NativeLibLoader.loadLibrary(NativeLibLoader.java:30)
at com.sun.webpane.platform.WebPage$1.run(WebPage.java:163)
at com.sun.webpane.platform.WebPage$1.run(WebPage.java:125)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.webpane.platform.WebPage.<clinit>(WebPage.java:125)
at javafx.scene.web.WebEngine.<init>(WebEngine.java:387)
at javafx.scene.web.WebEngine.<init>(WebEngine.java:380)
at javafx.scene.web.WebView.<init>(WebView.java:160)
at oracle.jdevimpl.webapp.html.viewer.WebViewBrowser$5.run(WebViewBrowser.java:215)
at com.sun.javafx.application.PlatformImpl$3.run(PlatformImpl.java:119)
To reproduce the error,
(1) Download JDeveloper from:
http://ide.us.oracle.com/download_adc/jdevadf/MAIN/nightly/JDEVADF_MAIN_GENERIC_120110.0013.6219/debug/jdevstudio.zip
This version of JDeveloper includes/uses JavaFX 2.1.0 (b07).
(2) Expand jdevstudio.zip to /Desktop/jdevstudio/
(3) Open the terminal. Type the following to run JDeveloper
/Desktop/jdevstudio/jdeveloper/jdev/bin/jdev -su -clean -J-Denable.webview=true -J-Duse.webview.on.mac=true
(4) Download attached sampleapp.zip. Expand it and open sampleapp.jws
(5) Double-click to open sample.jsf located under ViewController > Web Content.
(6) Design tab should fail to open the page because of the UnsatisfiedLinkError.
(8) java.lang.UnsatisfiedLinkError stack trace should appear in the terminal.
Attachment:
MANIFEST.MF: the manifest file used for loading platform-specific JavaFX jar and binaries. Note: The attached MANIFEST file is compatible with JavaFX 2.0.2.
oracle.external.javafx.jar: the jar file that contains the MANIFEST.MF through which jfxrt.jar and JavaFX binaries are loaded. Note: The attached MANIFEST file is compatible with JavaFX 2.0.2.
This is an OSGi-related issue because we do not see such an error when JavaFX is loaded from $CLASSPATH on Mac OSX.
This is a Mac-specific issue because we verified that JavaFX loads works in an OSGi container on Windows and Linux.
NativeLibLoader.loadLibraryFullPath() fails with the following exception:
java.lang.UnsatisfiedLinkError: Invalid URL for class: bundleresource://572.fwk1196330343/com/sun/javafx/runtime/NativeLibLoader.class
at com.sun.javafx.runtime.NativeLibLoader.loadLibraryFullPath(NativeLibLoader.java:118)
at com.sun.javafx.runtime.NativeLibLoader.loadLibraryInternal(NativeLibLoader.java:85)
at com.sun.javafx.runtime.NativeLibLoader.loadLibrary(NativeLibLoader.java:30)
at com.sun.webpane.platform.WebPage$1.run(WebPage.java:163)
at com.sun.webpane.platform.WebPage$1.run(WebPage.java:125)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.webpane.platform.WebPage.<clinit>(WebPage.java:125)
at javafx.scene.web.WebEngine.<init>(WebEngine.java:387)
at javafx.scene.web.WebEngine.<init>(WebEngine.java:380)
at javafx.scene.web.WebView.<init>(WebView.java:160)
at oracle.jdevimpl.webapp.html.viewer.WebViewBrowser$5.run(WebViewBrowser.java:215)
at com.sun.javafx.application.PlatformImpl$3.run(PlatformImpl.java:119)
To reproduce the error,
(1) Download JDeveloper from:
http://ide.us.oracle.com/download_adc/jdevadf/MAIN/nightly/JDEVADF_MAIN_GENERIC_120110.0013.6219/debug/jdevstudio.zip
This version of JDeveloper includes/uses JavaFX 2.1.0 (b07).
(2) Expand jdevstudio.zip to /Desktop/jdevstudio/
(3) Open the terminal. Type the following to run JDeveloper
/Desktop/jdevstudio/jdeveloper/jdev/bin/jdev -su -clean -J-Denable.webview=true -J-Duse.webview.on.mac=true
(4) Download attached sampleapp.zip. Expand it and open sampleapp.jws
(5) Double-click to open sample.jsf located under ViewController > Web Content.
(6) Design tab should fail to open the page because of the UnsatisfiedLinkError.
(8) java.lang.UnsatisfiedLinkError stack trace should appear in the terminal.
Attachment:
MANIFEST.MF: the manifest file used for loading platform-specific JavaFX jar and binaries. Note: The attached MANIFEST file is compatible with JavaFX 2.0.2.
oracle.external.javafx.jar: the jar file that contains the MANIFEST.MF through which jfxrt.jar and JavaFX binaries are loaded. Note: The attached MANIFEST file is compatible with JavaFX 2.0.2.
- relates to
-
JDK-8127981 Webview: Native libraries on Mac OS X need to have .dylib extension
- Closed
-
JDK-8100556 Maven support (loading DDLs)
- Closed