记Linux系统中缺少GUI设备引起的神奇bug


刚毕业出来工作的时候遇到过一个神奇的问题,jsp写的网站功能,有些页面点进去就会报错

java.lang.NoClassDefFoundError: Could not initialize class sun.awt.X11GraphicsEnvironment

但这部分代码完全没修改过,同一个包在本地以及测试服务器都正常,但生产环境会出现这个问题
当时我们部署应用是将war包传输到对应服务器的tomcat然后重启,用我的电脑远程到服务器启动应用会出现这个问题,神奇的是用别人的电脑远程到同一台服务器进行同样的操作就不会。
根据报错信息发现是因为Linux系统中缺少GUI设备引起的HeadlessException,在启动时加上jvm参数-Djava.awt.headless=true解决了问题。但想不明白为什么同一台服务器,我连上去操作就会出现这问题,用别人的电脑连上去操作就不会。难道是因为服务器可以检测到远程过来的机器GUI设备,但因为我电脑的某些设置检测不到我的

相关