Java Can't connect to X11 window server using 'localhost:10.0' as the value of the DISPLAY variable

背景描述:

xshell/xmanager使用非root用户可以远程启动,但有时需要root用户启动,比如导入的onos项目需要以root用户启动,否则会报错权限不够。但root用户启动IDEA会报错:Java Can't connect to X11 window server using 'localhost:10.0' as the value of the DISPLAY variable

 

 

 

 

解决:

1.远程登录主机

2.切换到普通用户(可以启动IDEA的)

sudo su  - sdn

xauth list $DISPLAY 
sdn-VirtualBox/unix:10  MIT-MAGIC-COOKIE-1  85967cbab44b5e41285902c90d78c859
sdn-VirtualBox/unix:11  MIT-MAGIC-COOKIE-1  d32f4b7af8dccbbf2ab617eeadbf6da4
sdn-VirtualBox/unix:12  MIT-MAGIC-COOKIE-1  ec17d75a31c8501220b65af875d7c624

echo $DSIPLAY 
localhost:10.0

3.切换到root用户,执行上面两个命令,结果如下

root@sdn-VirtualBox:~# echo $DISPLAY

root@sdn-VirtualBox:~# xauth list $DISPLAY

4.需要将2中命令输出的cookie添加到root用户

root@sdn-VirtualBox:~# xauth add sdn-VirtualBox/unix:10  MIT-MAGIC-COOKIE-1  85967cbab44b5e41285902c90d78c859
root@sdn-VirtualBox:~# xauth add sdn-VirtualBox/unix:11  MIT-MAGIC-COOKIE-1  d32f4b7af8dccbbf2ab617eeadbf6da4
root@sdn-VirtualBox:~# xauth add sdn-VirtualBox/unix:12  MIT-MAGIC-COOKIE-1  ec17d75a31c8501220b65af875d7c624

5.再次为 sudo 用户导出步骤 2 中的DISPLAY。尝试使用命令 xclock 来验证 x 客户端应用程序是否按预期工作。

#export DISPLAY=localhost:10.0 
#xclock

 

参考链接:

https://www.thegeekdiary.com/how-to-set-x11-forwarding-export-remote-display-for-users-who-switch-accounts-using-sudo/

https://stackoverflow.com/questions/10165761/java-cant-connect-to-x11-window-server-using-localhost10-0-as-the-value-of-t

 

posted @ 2022-08-09 16:13  冲向云霄1998  阅读(1901)  评论(0编辑  收藏  举报