Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
以sudo身份运行javafxjar:无法打开显示_Java_Javafx_Jar_Sudo_Opensuse - Fatal编程技术网

以sudo身份运行javafxjar:无法打开显示

以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 该软件是一

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

我遇到了一个错误,无法找到令人满意的解决方案。
在尝试运行命令
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应用程序)