1.之前在windows上验证,截屏功能很正常,于是部署到linux上
2.运行后,报“No X11 DISPLAY variable was set, but this program performed an operation which requires it. ”的错误。
是HeadlessToolkit.getScreenSize()这个函数
3.百度了下,原因大概知道了。主要是linux的机制问题。 需要先确认是否接了显示器,有没有图形界面输出。然后正确指定输出位置才行。
于是按照这个思路:
(1)在java程序启动时候,增加了-DJava.awt.headless=true参数
(2)在linux的启动文件/etc/profile中增加了
export DISPLAY=localhost:0
结果,又报了另一个错:Exception in thread "main" java.awt.HeadlessException
4. 考虑了一下,我们的程序运行的linux上是有图形界面的输出的所以DJava.awt.headless=true 可能不合适,
所以修改为-DJava.awt.headless=false ,然后重新启动了java程序。发现截屏可以输出了。
5. 非常高兴,然后重启机器,再执行截屏,发现又失败了。而且日志中什么都没有输出。怎么回事呢
6 比较 一下 成功情况和失败情况的区别。 一个是起了命令行后启动程序,一个是开机后后台自启动。就是这个差别。
前者截屏正常。 可能还是没有获取到正确的图形界面接口。但是明明已经在环境变量里设置了啊。
有什么区别呢
7. 尝试了一下,把环境变量的设置调整到java程序启动前执行。(sh文件中),然后测试,居然重启后截屏成功了。
什么原因呢。 改变的写法,能够保证 DISPLAY=localhost:0在java程序执行前执行。 但是之前的写法的话。是系统登录后,进行环境变量的
加载的,这个过程和java程序自启动的过程是异步的。所以很有可能java程序启动后,环境变量还没有赋值。从而导致找不到GUI接口。
这个是我个人的分析。
峰回路转,总算解决了问题。 也获得了经验
分享到:
相关推荐
Xming最新安装包下,含安装说明。 解决linux及信创环境下无法打开GUI客户端的问题。 配合Xsehll进行操作 解决 在linux及信创银河麒麟操作系统上...No X11 DISPLAY variable was set, but this program performed 报错
windows通过putty连接linux系统,有时候会出现cannot connection x server或display之类的错误。这时候,只需要此软件配个putty打开x11即可。此压缩包附带了注册码
centos 的x11转发工具,用于转发xshell连接请求,避免出现连接缓慢,连接警告 The remote SSH server rejected X11 forwarding request
如果您想将其安装为系统范围的应用程序,则包含一个 Makefile,该文件还将一些配置文件放在适当的目录中,以便在连接或删除监视器时自动调用 autorandr,系统从挂起中唤醒,或者用户登录到 X11 会话。以root身份运行...
x11的一种包,适用于centos。编译程序时报x11proto相关的错误可以安装试试问题是否能解决
KUKA X11 接線方式 主要針對庫卡機器人KRC4控制箱X11接腳說明,讓手臂可排除緊急停止狀態
库卡机器人 krc4 安全回路X11,短接方式,积累些积分啊。
x11、x11所依赖的库,以及x11如何编译到Ubuntu上或者交叉编译到arm linux上,文档中有详细的描述
一些简单的x11 demo,都是Hello World级别的,没有什么特殊的地方
x11vnc-0.9.13.tar.gz源码包
x11效果器调音软件
使用secureCRT运行virt-manager显示虚机,要在secureCRT上打开X11功能
opencv移植到arm上时,缺少gtk-x11-2.0
超微主板X11系列板载raid驱动for win2012
自己基于fsl-imx-x11工具链编译的支持X11模式的vnc服务端应用,将此包解压至arm32平台的linux上,运行后,再PC端连接即可实现远程控制和显示
Qt+x11+xcb的例子, 详见http://blog.csdn.net/xgbing/article/details/79479380
x11相关包,适用于centos,当编译中出现x11proto相关错误时可以安装此包,安装后问题得到解决
要在安装运行后启用分数缩放: gsettings set org.gnome.mutter experimental-features "['x11-randr-fractional-scaling']" 要禁用分数缩放,请运行: gsettings reset org.gnome.mutter experimental-features 或...
X11 协议 protocol 源码包 服务包 linux
因此,在这里只介绍安全信号通过X11接头的接线图。 X11的接线图根据控制柜型号不同,接线方式也不一样。 (1)KR C4 stand & KR C4 Midsize & KR C4 Extend 控制柜: 急停、安全门、安全光栅信号说明:建议接入...