项目中使用了java的swing画拓扑图导出功能,但发现会报如下错误:
经定位发现,该错误是因为没有设置DISPLAY值导致,使用export DISPLAY=:0即可解决。
再经过进一步分析发现关闭X11,会导致整个拓扑图导出功能失败,原因是使用了Jframe对象依赖X11的输出。
但在实际项目中生成环境服务器是一般不建议开启X11的,所以必须找到替代方法,经过验证,发现使用Xvfb,即可支持不启动X11进行无界面运行。
我们可以在安装盘中找到Xvfb的rpm包安装,然后启动Xvfb,方法为Xvfb :0 -ac 2>/dev/null &,其中0表示设置的DISPLAY指向模式。
另外查看当前linux的模式,命令 runlevel
其中 N 5 表示X11模式
直接输入init + 你想要的模式 即可切换模式。
比如输入: init 0 就是关机
init 3 就是切换到多用户-命令行模式
init 5 就是切换到图形化界面
init 6 就是重启