Невозможно запустить простое приложение HelloWorld JavaFx на Raspberry Pi Model 3 и Java 11 - PullRequest
0 голосов
/ 26 января 2019

Я не могу запустить образец Gluon JavaFx .Я выполнил весь описанный шаг, за исключением того, что вместо предварительного просмотра был выбран более новый Liberica JDK 11.0.2 и указал переменную JAVA_HOME на соответствующий каталог.

Выполнение демонстрационного приложенияиспользование:

$JAVA_HOME/bin/java \
 --module-path=/opt/armv6hf-sdk/lib \
 --add-modules=javafx.controls \
 -cp target/classes/ \
 -Dprism.verbose=true \
 -Dembedded=monocle \
 -Dglass.platform=Monocle sample.Main

Дает мне следующий вывод и ошибку:

Prism pipeline init order: es2 sw 
Using Double Precision Marlin Rasterizer
Using dirty region optimizations
Using system sized mask for primitives
Not forcing power of 2 sizes for textures
Using hardware CLAMP_TO_ZERO mode
Opting in for HiDPI pixel scaling
Prism pipeline name = com.sun.prism.es2.ES2Pipeline
Loading ES2 native library ... prism_es2_monocle
    succeeded.
GLFactory using com.sun.prism.es2.MonocleGLFactory
Dispman: Cannot open display
* failed to add service - already in use?

Есть идеи, в чем может быть проблема?Я нашел различные советы по stackoverflow, такие как дополнительная установка следующих пакетов:

sudo apt install raspberrypi-ui-mods xorg libgtk2.0-0

или выполнение обновления прошивки с помощью:

sudo rpi-update 192

даже изменение /etc/udev/rules.d/99-com.rules и добавление:

SUBSYSTEM=="input*", PROGRAM="/bin/sh -c '\
 chown -R root:input /sys/class/input/*/ && chmod -R 770 /sys/class/input/*/;\
'"

действительно вызвало какие-либо изменения.

Кто-нибудь знает, что мне не хватает или можно сделать, чтобы запустить это?

1 Ответ

0 голосов
/ 29 января 2019

Используйте последний raspbian-stretch образ и установите действительный Liberica JDK в папку /opt.

Для запуска приложения JavaFx в среде X11 используйтеследующие флаги:

$JAVA_HOME/bin/java -Djavafx.platform=gtk -cp <actual-classpath> <main-class-name>

Для запуска приложения JavaFx через SSH или из командной строки используйте:

$JAVA_HOME/bin/java -cp <actual-classpath> <main-class-name>

По желанию вы можетедобавьте эти флаги, чтобы получить более подробную информацию:

-Dprism.verbose=true -Djavafx.verbose=true

...