以sudo身份运行javafxjar:无法打开显示
我正在构建一个基于spring的javafx应用程序,旨在在Linux和Windows机器上运行 我遇到了一个错误,无法找到令人满意的解决方案。以sudo身份运行javafxjar:无法打开显示,java,javafx,jar,sudo,opensuse,Java,Javafx,Jar,Sudo,Opensuse,我正在构建一个基于spring的javafx应用程序,旨在在Linux和Windows机器上运行 我遇到了一个错误,无法找到令人满意的解决方案。 在尝试运行命令sudo java-jar MS.jar时,我得到InvocationTargetException: 原因:java.lang.UnsupportedOperationException:无法打开显示 当然,当单独执行java-jar MS.jar时,一切都很好 顺便说一句,用“:0”在终端结果中运行echo$DISPLAY 该软件是一
在尝试运行命令
sudo java-jar MS.jar
时,我得到InvocationTargetException
:原因:java.lang.UnsupportedOperationException:无法打开显示
当然,当单独执行java-jar MS.jar
时,一切都很好
顺便说一句,用“:0”在终端结果中运行echo$DISPLAY
该软件是一个javafxui软件,需要sudo权限才能执行内核任务
机器详细信息:OS:OpenSuse 42.1
JAVA版本:“1.8.0_152” 我如何解决这个问题
谢谢 您是否尝试过
gtksudo/gtksu/kdesu
命令而不是sudo
如果你的应用程序是一个UI应用程序,那么它应该可以做到这一点
欲了解更多信息,请参阅:,引用其他地方的答案,该答案对我在Ubuntu上使用javafx作为root用户有效。。。也许这可以帮助其他人。我和你有同样的问题,但对一个普通用户来说。假设我想使用用户帐户foo启动firefox。我以bar身份登录:
[bar@localhost~]$sudo-u foo-H firefox
遗憾的是,命令失败,错误与问题相同(即未指定协议&无法打开显示)
我的解决方案是简单地将用户foo添加到X服务器的授权访问列表中
xhost si:localuser:foo
就这样,我可以使用sudo和用户foo启动Firefox(和其他X应用程序)