问题描述
场景需要使用到键盘事件
在使用springBoot创建Robot对象时出现错误:java.awt.AWTException: headless environment
解决方法
将springBoot启动类的
SpringApplication.run(Application.class, args);
改成:
SpringApplicationBuilder builder = new SpringApplicationBuilder(Application.class);
builder.headless(false).run(args);
原因:java.awt.headless 模式
Headless模式是系统的一种配置模式。在系统可能缺少显示设备、键盘或鼠标这些外设的情况下可以使用该模式。
经查询发现报错提示当前模式为无头模式,(无头模式就是允许程序在没有一些基本外设的情况下运行,其目的为减少服务器资源)而我的需求是需要模拟键盘输入,无头模式把我的模拟键盘给取消了。Spring Boot默认状态是开启无头模式的,所以需要关闭无头模式。
//修改启动类即可
@SpringBootApplication
public class SystemctlApplication {
public static void main(String[] args) {
SpringApplicationBuilder builder = new SpringApplicationBuilder(SystemctlApplication.class);
//SpringApplication.run(SystemctlApplication.class, args);
builder.headless(false)
//.web(WebApplicationType.NONE)
//.bannerMode(BannerMode.OFF)
.run(args);
}
}