Linux下运行含图形处理的Java程序时抛出java.awt.HeadlessException错误

Linux下运行含图形处理的Java程序时抛出java.awt.HeadlessException错误

遇到的问题如标题,下面是我主机的相关环境

  • 系统环境:CentOS7.3
  • 远程连接环境:Xshell、Xftp
  • jdk包版本:jdk-8u221-linux-x64

查找了很多文章,尝试过vim /etc/profile 编辑配置文件写入(或命令行直接输入执行)
export DISPLAY=localhost:0.0
但还是报错:Exception in thread “main” java.awt.AWTError: Can’t connect to X11 window server using ‘localhost:0.0’ as the value of the DISPLAY variable.

后尝试在运行jar包时加入指令
java -jar -DJava.awt.headless=true T.jar(不知道是不是这样加入指令,不过系统接收指令并运行了)不过结果依旧报错,只是错误内容不同:具体没有记录,另外我还在java程序中加入了
System.setProperty(“java.awt.headless”, “true”);,不过也没用(无论true还是false)

后来发现 startx & 指令根本用不了,原来是没有安装X11,然后找到安装的方法:

原文链接: 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA
版权协议,转载请附上原文出处链接和本声明。[https://blog.csdn.net/The_Time_Runner/article/details/102550587]
其中介绍了X11和如何安装X11

这回能够运行 startx & 指令了,然而并没有结束(心累啊),程序还是运行不出来,直接用 java -jar T.jar 也无济于事,然后又找到文章安装缺省的文件 (实在不好意思,翻了太多文章,后来找不到那位作者的那篇文章了,指令是通过回滚指令找到的,抱歉)
yum install libxtst*.i686
yum install libXtst*.i686
yum install libxtst*.i686
(此处请忽略,回滚的,不知道正不正确的指令,以下也可能出现执行不了的指令)

yum install libXp.i686
yum install libXt
.i686
yum -y install libXtst

yum -y install xorg-x11-xauth xorg-x11-server-utils xorg-x11-server-Xnest libXtst

然后再执行一遍 startx &xhost+ 出现了X11 的一个界面(没细看)结果还是不行,但是这次不一样了,在我把配置文件中的 export DISPLAY=localhost:0.0
export DJava.awt.headless=true 去除后,再次执行
java -jar T.jar时Xshell弹出了一个窗口(同时尝试了
java -jar -DJava.awt.headless=true T.jar 依旧报错 ),提示安装Xmanager,安装完成后,再次执行jar包,程序终于可以运行了,泪目!

总结一下就是:配置X11的图形环境

yum groupinstall "X Window System"
yum groupinstall "Gnome"
yum install libXp*.i686
yum install libXt*.i686
yum -y install libXtst
yum -y install xorg-x11-xauth xorg-x11-server-utils xorg-x11-server-Xnest libXtst

然后执行

startx &
xhost+

最后安装 Xmanager 即可在远程连接的情况下运行含图形处理的java程序

注: 可预先安装 Xmanager 尝试下是否能够正常运行,因为有可能只需要这一步,即使服务器中没有安装X11;具体可以了解下Xmanager的工作机制,而如何抛开该软件直接在Headless模式下运行含图形计算的Java程序,目前尚未弄明白。如有大佬知道,方便的话希望能分享一下,谢谢!

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值