问题记录:java.awt.AWTException: headless environment

本文介绍在使用Robot类进行键盘事件模拟时遇到的java.awt.AWTException: headless environment异常,通过修改SpringBoot启动类的headless属性为false解决此问题,避免了在没有图形界面的环境下运行时出现的错误。
摘要由CSDN通过智能技术生成
问题描述:在使用Robot来模拟键盘事件时,启动报错java.awt.AWTException: headless environment
代码Service:
import com.live.ppt.service.KeypressService;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.awt.*;
import java.awt.event.KeyEvent;

@Service
public class KeypressServiceImpl implements KeypressService {

    @Resource
    private Robot robot;

    public void right() {
        keyDownUP(KeyEvent.VK_RIGHT);
    }

    public void left() {
        keyDownUP(KeyEvent.VK_LEFT);
    }

    public void f5() {
        keyDownUP(KeyEvent.VK_F5);
    }

    public void esc() {
        keyDownUP(KeyEvent.VK_ESCAPE);
    }

    public void keyDownUP(int keycode) {
        robot.keyPress(keycode);
        robot.keyRelease(keycode);
        robot.delay(100);
    }

}
解决:
将springboot启动类的
SpringApplication.run(Xxx.class,args);
改为:
SpringApplicationBuilder builder = new SpringApplicationBuilder(Xxx.class);
        builder.headless(false).run(args);
原因:
java.awt.headless 模式

Headless模式是系统的一种配置模式。在系统可能缺少显示设备、键盘或鼠标这些外设的情况下可以使用该模式。

上边的builder.headless(false).run(args) 就是

System.setProperty("java.awt.headless", "false");

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DeathAndLife

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值