0

I've written a program in IntelliJ Idea using JavaFX. It uses a Webkit property to display an html page in a JavaFX Window. My Program runs on every Device (Windows and Linux) except the Raspberry Pi 3b it should be running on. When I try it gives me this error:

Exception in Application start method
Exception in thread "main" java.lang.RuntimeException: Exception in Application start method
    at javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:900)
    at javafx.graphics/com.sun.javafx.application.LauncherImpl.lambda$launchApplication$2(LauncherImpl.java:195)
    at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: java.lang.UnsatisfiedLinkError: no jfxwebkit in java.library.path: [/usr/java/packages/lib, /lib, /usr/lib]
    at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2673)
    at java.base/java.lang.Runtime.loadLibrary0(Runtime.java:830)
    at java.base/java.lang.System.loadLibrary(System.java:1873)
    at javafx.graphics/com.sun.glass.utils.NativeLibLoader.loadLibraryInternal(NativeLibLoader.java:162)
    at javafx.graphics/com.sun.glass.utils.NativeLibLoader.loadLibrary(NativeLibLoader.java:52)
    at javafx.web/com.sun.webkit.WebPage.lambda$static$1(WebPage.java:134)
    at java.base/java.security.AccessController.doPrivileged(Native Method)
    at javafx.web/com.sun.webkit.WebPage.<clinit>(WebPage.java:133)
    at javafx.web/javafx.scene.web.WebEngine.<init>(WebEngine.java:847)
    at javafx.web/javafx.scene.web.WebEngine.<init>(WebEngine.java:832)
    at javafx.web/javafx.scene.web.WebView.<init>(WebView.java:260)
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
    at java.base/java.lang.Class.newInstance(Class.java:584)
    at javafx.fxml/javafx.fxml.FXMLLoader$InstanceDeclarationElement.constructValue(FXMLLoader.java:1019)
    at javafx.fxml/javafx.fxml.FXMLLoader$ValueElement.processStartElement(FXMLLoader.java:754)
    at javafx.fxml/javafx.fxml.FXMLLoader.processStartElement(FXMLLoader.java:2722)
    at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2552)
    at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2466)
    at javafx.fxml/javafx.fxml.FXMLLoader.load(FXMLLoader.java:2435)
    at com.example.demo.Application.start(Application.java:32)
    at javafx.graphics/com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$9(LauncherImpl.java:846)
    at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runAndWait$12(PlatformImpl.java:456)
    at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:429)
    at java.base/java.security.AccessController.doPrivileged(Native Method)
    at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:428)
    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

I have tried installing various JDK's and JavaFX. I've tried OpenJFX, Bellsoft Full JDK and Gluon jfx-1.17.0.2. No matter which one i tried it all showed the same result. I had trouble finding a proper sdk due to the 32Bit Arm architecture. (all other devices used 64bit) I have added them with module-path and added all required modules whilst opening the .jar but it did not do anything.

Auralyn
  • 1
  • 1
  • Maybe [`HostServices.showDocument`](https://openjfx.io/javadoc/19/javafx.graphics/javafx/application/HostServices.html#showDocument(java.lang.String)) will be an alternative for you, maybe not. If it works, it shows a document in the default system browser app, not an embedded window. – jewelsea Jan 25 '23 at 12:14

1 Answers1

3

According to https://bell-sw.com/pages/liberica-release-notes-19/ even for the latest version of the FULL JDK "Java FX Webkit - does not work". I am not aware of any 32 bit distro for the raspi which would support Webkit.

mipa
  • 10,369
  • 2
  • 16
  • 35