最近需要在CentOS中运行FreeRapid,是一个图形界面的网盘下载器。
一般情况来说,设置好JAVA_HOME、PATH等系统环境变量后,运行以下命令即可:
java -jar frd.jar > /dev/null 2>&1 &
但我的CentOS是无桌面环境的服务器系统,那怎么配置运行呢?步骤如下。
首先,打开/etc/ssh/sshd_config,修改:
X11Forwarding yes
X11UseLocalhost yes
然后重启sshd:
service sshd restart
重新登入ssh,若出现“WARNING! The remote SSH server rejected X11 forwarding request.”,则需要安装以下组件:
yum install xorg-x11-xauth xterm
若运行Java程序时出现“No X11 DISPLAY variable was set, but this program performed an operation which requires it.”,则:
export DISPLAY=localhost:10.0
localhost:10.0只是一个常用的例子,具体要根据用户本机的X11 server来设定;如果用Xmanager,在SSH的属性设置的Tunneling中forward到Xmanager了,登录SSH会自动设置好这个系统环境变量的。
若出现“libXtst.so.6: cannot open shared object file: No such file or directory”,则安装必要组件:
yum install libXi libXp libXtst
还有个问题,SSH中用screen是很方便的,但是screen中运行X11图形界面程序就很麻烦了,解决方案有以下几个:
1、用proxy-display这个小脚本,不过兼容性有点问题。https://blog.nelhage.com/2010/05/using-x-forwarding-with-screen/
2、用xpra,号称是“X窗口环境中的screen”,相关网址是http://xpra.org
3、不用X11转发,改用VNC进行远程图形界面传输,这是个很好的方案。还可以弥补X11 forwarding的性能卡顿问题。这个解决方案我会整理另一篇文章,参见《CentOS使用VNC查看X11图形界面窗口》:。
你好,服务器上有的用户能正常使用图形界面,有的则出现Exception in thread "main" java.awt.HeadlessException:
No X11 DISPLAY variable was set, but this program performed an operation which requires it.
at java.awt.GraphicsEnvironment.checkHeadless(GraphicsEnvironment.java:204)
at java.awt.Window.(Window.java:536)
at java.awt.Frame.(Frame.java:420)
at java.awt.Frame.(Frame.java:385)
at javax.swing.JFrame.(JFrame.java:189)
at uk.ac.babraham.FastQC.FastQCApplication.(FastQCApplication.java:63)
at uk.ac.babraham.FastQC.FastQCApplication.main(FastQCApplication.java:332)
也尝试过添加export DISPLAY=localhost:10.0,但仍然报类似的错误
很好的呀啊啊
喝的呀