根据这个链接,我从gluon网站上听到了使用openjdk11和gluon javafx17运行javafx的说明。我正在使用官方的rasbian buster桌面。
https://docs.gluonhq.com/#_setting_up_the_raspberry_pi_4 我确实导出了ENABLE_GLUON_COMMERCIAL_EXTENSIONS=true并在.bashrc export ENABLE_GLUON_COMMERCIAL_EXTENSIONS=true中设置了它,并重新启动了我的计算机,但仍然从netbeans远程运行,如下所示:-
Gluon Commercial Features not unlocked.
Set the environment variable ENABLE_GLUON_COMMERCIAL_EXTENSIONS and
check the file <sdk>/legal/javafx.graphics/gluon.md for license information.
[GluonDRM] eglSwapBuffers ok
[GluonDRM] realswapbuffer called
[GluonDRM] eglSwapBuffers ok程序就到此为止了。。。。。请注意,sudo -E对我不起作用,我在netbeans远程平台中只使用sudo作为exec前缀。我的虚拟机选项如下:-
-Dmonocle.platform=EGL -Dembedded=monocle -Dglass.platform=Monocle -Degl.displayid=/dev/dri/card0 -Dmonocle.egl.lib=/home/pi/fx/lib/libgluon_drm-1.1.3.so --module-path /home/pi/fx/lib --add-modules javafx.controls,javafx.fxml -cp dist/.谢谢
发布于 2021-04-17 19:17:52
在man sudo中,-E是--preserve-env的快捷方式
向安全策略指示用户希望保留其现有环境变量。
NetBeans remote平台允许使用exec前缀,因此您可以在运行java ...之前添加sudo。但是,它只允许一个单词。使用sudo -E作为前缀将不起作用,因为创建的命令行将如下所示:
cmd : cd '/home/pi/NetBeansProjects/HelloFX'; 'sudo -E' 'java'...这就抛出了错误:
bash: sudo -E: command not found因此,一种可能的修复方法是将export ENABLE_GLUON_COMMERCIAL_EXTENSIONS=true添加到系统范围的配置文件中,如/etc/environment,这是一个由所有用户使用的系统范围的配置文件,并使用管理员权限创建。
我已经测试过了,在本地我可以看到:
$ sudo echo $ENABLE_GLUON_COMMERCIAL_EXTENSIONS
true位当通过SSH从远程平台运行时,它似乎无法访问。
此外,正如您所评论的,sudo env没有显示它。
因此,虽然有一种合适的方法可以做到这一点(也许是/etc/sudoers,但我不是Linux专家),但还有一种不同的选择:去掉sudo。
如果您从远程平台删除exec前缀sudo,您现在应该能够远程运行应用程序。但是,您将看到:
Udev: Failed to write to /sys/class/input/mice/uevent
Check that you have permission to access input devices
Udev: Failed to write to /sys/class/input/event0/uevent
Check that you have permission to access input devicesJavaFX需要访问鼠标事件的输入文件,而您需要权限,所以sudo是获取权限的快捷方法。
但是,还有另一种方法可以在不使用sudo的情况下授予对输入文件的权限:在/etc/udev/rules.d/99-com.rules中修改权限规则。
编辑文件:
$ sudo nano /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从NetBeans运行您的应用程序,而不需要sudo,并且可以从.bashrc运行您的环境。
https://stackoverflow.com/questions/67130759
复制相似问题