qt小程序(本地linux环境测试打包均通过)在centos服务器上运行报错

缺少依赖xxx.so之类的问题不用多说了ldd  xxx  查看依赖 not found的下载安装一下就好了。

问题:

qt.qpa.screen: QXcbConnection: Could not connect to display 
Could not connect to any X display.

什么安装Xmanager、设置DISPLAY之类的统统没用,问题点是找到了:远程连接非GUI的服务器时调用了需要GUI的程序。参考以下两篇文章:

https://blog.csdn.net/u011728480/article/details/66974510

https://bbs.csdn.net/topics/391894181

但是无奈,安装远程界面连接工具、在服务器安装桌面、gnome等等都不太行,就算自己测试通过了,这些方式对用户来说也是很难以接受的,太麻烦!人家服务器本身就是不需要界面的,为了一个功能强行装一个桌面?

最后总算找到解决办法!使用Xvfb,这东西简直好用。这个工具相当于一个wrapper, 给应用程序提供虚拟的 X server。xvfb的使用方式很多自行搜索,也可以查看help

qt小程序(本地linux环境测试打包均通过)在centos服务器上运行报错

 

因此,针对无GUI的服务器上运行程序总结为两句话:
1、安装Xvfb—— centos:yum install Xvfb | ubuntu:apt-get install xvfb
2、使用xvfb-run 运行jar包—— xvfb-run java -jar xxx.jar