Linux下No more handles [gtk_init_check() failed]

通过SSH Secure Shell连到linux主机,在命令行下启动Java程序,该Java程序调用了SWT的接口,出现异常

org.eclipse.swt.SWTError: No more handles [gtk_init_check() failed]

 Linux主机已经默认启动图形界面。

网上查找资源,说明是请求不到display资源造成的,在SSH下执行xclock命令,提示

Error: Can't open display: localhost:0

Error: Can't open display: localhost:0

看错误信息,默认使用diplay是0哦.

解决办法:

vncserver -kill :1

vncserver :1

export DISPLAY=localhost:1

扫描二维码关注公众号,回复: 1422421 查看本文章

执行xhost,允许其他机器连接,可以输入文字或提示“access control disabled, clients can connect from any host”才正确。

注意vncserver后面有个空格。其实就是display为0的被占用了,换一个做为当前的dispay就行了。

通过SSH Secure Shell执行

./startup.sh

可以成功运行,但关闭SSH客户端连接后,程序也自动终止。可以使用下面的命令使程序变为后台进程。

nohup ./startup.sh  &

 SSH客户端关闭后,仍在运行。如果要停止,要先找到其PID,然后kill %pid%

查看所有进程,及执行名

ps aux

查找java为启动名的进行

ps aux |grep java
 

猜你喜欢

转载自cleaneyes.iteye.com/blog/752508
今日推荐