我无法运行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/*/;\
'"
没有引起任何变化。
有人知道我想念什么或者可以做些什么吗?
答案 0 :(得分:1)
使用最新的raspbian-stretch映像并将实际的Liberica JDK安装在/opt
文件夹中。
要在X11环境中启动JavaFx应用程序,请使用以下标志:
$JAVA_HOME/bin/java -Djavafx.platform=gtk -cp <actual-classpath> <main-class-name>
要通过SSH或从命令行启动JavaFx应用程序,请使用:
$JAVA_HOME/bin/java -cp <actual-classpath> <main-class-name>
(可选)您可以添加这些标志以获得更多详细信息:
-Dprism.verbose=true -Djavafx.verbose=true