应用系统在使用上述方法生成验证码图片时一直正常,直到部署在某一台 Linux 机器上一直无法获取到验证码,也没有报错信息。
最终定位到问题:执行到 bufferedimage.createGraphics(); 便停止不动了。
在启动脚本中添加
JAVA_OPTS="-Djava.awt.headless=true"
什么是Headless mode?
何时使用和headless mode?
如何使用和Headless mode?
一般是在程序开始激活headless模式,告诉程序,现在你要工作在Headless mode下,就不要指望硬件帮忙了,你得自力更生,依靠系统的计算能力模拟出这些特性来:
System.setProperty(“java.awt.headless”,”true”);
或者在启动脚本中添加:
JAVA_OPTS="-Djava.awt.headless=true"
参考博客: