从Java代码设置DISPLAY =:X以避免java.awt.HeadlessException

问题描述

我在CentOS下创建screenhsot的代码导致以下回溯: java.awt.HeadlessException: 没有设置X11 disPLAY变量。

这是我创建屏幕截图的代码

     GraphicsDevice screen = GraphicsEnvironment.getLocalGraphicsEnvironment().getScreenDevices()[0];
        Robot robot = new Robot(screen);
        Rectangle screenBounds = screen.getDefaultConfiguration().getBounds();
        Rectangle screenRect = new Rectangle(screenBounds);
        BufferedImage screenshot = robot.createScreenCapture(screenRect);

我的X服务器的disPLAY是:3, export disPLAY=:3解决问题,但是,我需要一个纯Java解决方案,而无需在外壳上安装export disPLAY=:3。 有没有办法欺骗sun.awt.X11GraphicsEnvironment并从Java代码设置disPLAY =:3来使屏幕截图创建工作正常?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)