1

我一直在尝试在我的树莓派 pi4 上从 Gluon 安装/运行 JavaFX18 并收到以下错误消息:

java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 的线程“主”java.lang.reflect.InvocationTargetException 中的异常

(...编辑...)

引起:java.lang.UnsatisfiedLinkError:/opt/javafx-sdk-18/lib/libglass.so:/opt/javafx-sdk-18/lib/libglass.so:未定义符号:g_direct_hash

这是我的配置:

  • Java:Linux/arm32 jdk-17.0.1+12
  • JavaFx:Linux/arm32 openjfx-18-ea+7(也试过 17.0.1 和 17.0.2)

我正在使用简单的 HelloFX 示例 ( https://github.com/openjfx/samples ) 遵循 Gluon 文档 ( https://docs.gluonhq.com/#platforms_embedded ) 的说明。以下是我在我的 pi 上的 HelloFX 目录(src 所在的位置)中执行的命令:

  1. sudo /opt/jdk-17.0.1+12/bin/javac -verbose --module-path=/opt/javafx-sdk-18/lib --add-modules=javafx.controls src/hellofx/HelloFX.java - d 距离
  2. sudo /opt/jdk-17.0.1+12/bin/java -Dglass.platform=gtk -Djava.library.path=/usr/java/packages/lib:/lib:/usr/lib:/opt/javafx- sdk-18/lib --module-path=/opt/javafx-sdk-18/lib --add-modules=javafx.controls -cp dist/。hellofx.HelloFX

[注意这是在 X11 上运行,而不是在 Kiosk/CLI 模式下;Gluon 文档还展示了如何使用 DRM..etc 在非桌面模式下运行相同的示例:我已经尝试过这个并且工作正常;我还没有尝试过 64b 变体]

有没有人偶然发现这个问题并能够解决?

4

1 回答 1

0

FWIW:当然不是具有未知副作用的好解决方案:我使用 JavaFX11 SDK 中的 libglass.so 替换 JavaFX17.0.1/lib 中的相同文件,并且 HelloFX 示例可以从桌面启动。

所以... FX 17.0.1/17.0.2 和 18 Linux/arm32 SDK 中存在带有 libglass.so 文件的错误,或者需要一些晦涩的设置。

于 2021-11-29T19:49:49.487 回答