我正在构建一个基于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”
如何解决此问题?
谢谢!
答案 0 :(得分:0)
在Ubuntu上用javafx作为root来引用我在其他地方的答案...也许这可以帮助别人。我有同样的问题,但对于普通用户。假设我想使用用户帐户foo启动firefox。我以条形式登录:
[bar@localhost ~]$ sudo -u foo -H firefox
可悲的是,该命令失败并出现与问题相同的错误(即没有指定协议且无法打开显示)
我的解决方案是简单地将用户foo添加到授权访问X服务器的列表中。
xhost si:localuser:foo
就是这样,我可以使用sudo和用户foo启动Firefox(以及其他X应用程序)。