【发布时间】:2019-06-20 01:56:28
【问题描述】:
我无法运行 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/*/;\
'"
确实引起了任何变化。
有人知道我缺少什么或可以做些什么来让它运行吗?
【问题讨论】:
-
你的显示器插上了吗?您是从 SSH 运行还是直接从 Raspberry Pi 运行?你使用 X11 还是命令行?
-
用 ssh 直接在控制台试了一下...
-
Liberica JDK 已经包含 JavaFX,因此您可以简单地尝试:
sudo $JAVA_HOME/bin/java -cp target/classes sample.Main。你能检查一下这是否有效吗? -
不幸的是我仍然得到相同的结果:
pi@raspberrypi:~/MaryHadALittleLambda $ sudo /opt/jdk-11.0.2/bin/java -cp target/classes sample.MainDispman: Cannot open display* failed to add service - already in use?pi@raspberrypi:~ $ /opt/jdk-11.0.2/bin/java -version openjdk version "11.0. 2-BellSoft" 2018-10-16 OpenJDK Runtime Environment (build 11.0.2-BellSoft+7) OpenJDK Server VM (build 11.0.2-BellSoft+7, 混合模式) pi@raspberrypi:~ $ uname -a Linux raspberrypi 4.14 .79-v7+ #1159 SMP Sun Nov 4 17:50:20 GMT 2018 armv7l GNU/Linux -
Liberica 也从 X11 运行。尝试运行
startx,然后打开终端运行sudo $JAVA_HOME/bin/java -Djavafx.platform=gtk -cp target/classes sample.Main
标签: java raspberry-pi3 gluon openjfx