无法在Raspberry Pi Model 3和Java 11上运行简单的HelloWorld JavaFx应用程序

时间:2019-01-26 13:13:43

标签: java raspberry-pi3 gluon openjfx

我无法运行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 :(得分: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