2

我无法运行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/*/;\
'"

确实引起了任何变化。

有谁知道我缺少什么或可以做些什么来让它运行?

4

1 回答 1

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

于 2019-01-29T20:58:43.790 回答