将javafx jar作为sudo运行:无法打开DISPLAY

时间:2017-11-27 10:57:23

标签: java javafx jar sudo opensuse

我正在构建一个基于spring的javafx应用程序,旨在在Linux和Windows机器上运行。

我遇到了错误,无法找到问题的满意解决方案 在尝试运行命令sudo java -jar MS.jar时,我收到InvocationTargetException
Caused by: java.lang.UnsupportedOperationException: Unable to open DISPLAY

当然,单独执行java -jar MS.jar时,一切都很有效。

BTW,在终端结果中使用“:0”运行echo $DISPLAY

该软件是一个javafx UI软件,需要sudo权限才能完成内核任务。

机器详细信息:
操作系统:OpenSuse 42.1
JAVA版本:“1.8.0_152”

如何解决此问题?

谢谢!

1 个答案:

答案 0 :(得分:0)

在Ubuntu上用javafx作为root来引用我在其他地方的答案...也许这可以帮助别人。我有同样的问题,但对于普通用户。假设我想使用用户帐户foo启动firefox。我以条形式登录:

[bar@localhost ~]$ sudo -u foo -H firefox

可悲的是,该命令失败并出现与问题相同的错误(即没有指定协议且无法打开显示)

我的解决方案是简单地将用户foo添加到授权访问X服务器的列表中。

xhost si:localuser:foo

就是这样,我可以使用sudo和用户foo启动Firefox(以及其他X应用程序)。