(Gluon) JavaFX17/18 на Raspi (с использованием рабочего стола) не работает из-за libglass.so: неопределенный символ g_direct_hash

Я пытался установить/запустить JavaFX18 из Gluon на моем Raspberry Pi4 и получил следующее сообщение об ошибке:

Исключение в потоке «основной» java.lang.reflect.InvocationTargetException в java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (собственный метод)

(... отредактировано...)

Вызвано: 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)

Я следую инструкциям для документа Gluon (https://docs.gluonhq.com/#platforms_embedded), используя простой пример HelloFX (https://github.com/openjfx/samples). Вот команды, которые я выполняю в каталоге 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 - г расстояние
  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, а не в режиме киоска/CLI; документ Gluon также показывает, как запустить тот же пример в нерабочем режиме с DRM..и т. д.: я пробовал это и работает достаточно хорошо; Я еще не пробовал вариант 64b]

Кто-нибудь наткнулся на эту проблему и смог обойти?

1 ответ

FWIW: Определенно не очень хорошее решение с неизвестным побочным эффектом: я использовал libglass.so из JavaFX11 SDK, заменив тот же файл в JavaFX17.0.1/lib, и пример HelloFX запускается с рабочего стола.

Итак... либо есть ошибка в FX 17.0.1/17.0.2 и 18 Linux/arm32 SDK с этим файлом libglass.so, либо требуются какие-то неясные настройки.

Другие вопросы по тегам