弹簧启动强制无头模式

时间:2016-10-13 09:06:18

标签: java spring-boot sikuli headless

我正在尝试构建一个简单的基于maven的应用程序,用于使用SikuliX进行自动化测试。该应用程序当前是作为最新的spring-boot应用程序创建的(v.1.4.1)。 应用程序本身相当简单(目前是POC),一个类作为Application(SpringBootApplication注释,实现CommandLineRunner)和一个服务(autowired,impl和interface)。没有更多,没有其他依赖(只有SikuliX,commons-lang3和spring-boot-starter)。

然而,当我运行应用程序时,Sikuli子系统抱怨无头模式运行。

我尝试过使用过 SpringApplicationBuilder.headless(false).web(false).run(args);设置System.setProperty("java.awt.headless", "false");将参数传递给JVM以禁用无头模式。没有一个选项能够和他们的组合一样好用。 Spring-boot总是采用无头模式。

有没有人遇到这样的问题?

PS:os是mac和windows,java 1.8

有一个美好的一天。

学家

2 个答案:

答案 0 :(得分:0)

Sikuli不能以无头模式运行。这是一个已知的限制。原因是Sikuli内部使用的Java Robot库。换句话说,你必须有一台带有屏幕的跑步机才能让Sikuli工作。

答案 1 :(得分:0)

我遇到了同样的问题,并通过将 java.awt.headless 系统属性设置为 false 来修复它。这是 M. Deinum 在对 OP 的评论中提出的建议,因此要感谢他们。

这是我将它添加到我的主应用程序文件的方式:

public static void main(String[] args) {
    System.setProperty("java.awt.headless", "false"); //ADD THIS
    SpringApplication.run(MyClass.class, args);
}