2016-10-13 20 views
2

SikuliX를 사용하여 자동화 된 테스트를 위해 간단한 maven 기반 앱을 빌드하려고합니다. 이 응용 프로그램은 현재 가장 최근의 봄 부팅 응용 프로그램 (v 1.4.1)으로 만들어졌습니다. 응용 프로그램 자체는 다소 간단합니다 (현재 POC), 응용 프로그램 (SpringBootApplication 주석이 달린, CommandLineRunner 구현) 및 서비스 (autowired, impl 및 interface) 중 하나입니다. 다른 어떤 의존성도 없습니다 (단지 SikuliX, commons-lang3 및 spring-boot-startter).스프링 부트 강제 헤드리스 모드

그러나 앱을 실행하면 Sikuli 하위 시스템이 헤드리스 모드로 실행되는 것에 대해 불만을 토로합니다.

SpringApplicationBuilder.headless(false).web(false).run(args); 설정 System.setProperty("java.awt.headless", "false"); 설정을 JVM에 전달하여 헤드리스 모드를 비활성화했습니다. 어떤 옵션도 그 조합과 함께 작동하지 않습니다. 스프링 부트는 항상 헤드리스 모드를 가정합니다.

이와 비슷한 문제가있는 사람이 있습니까?

PS : OS 1.8

이 좋은 하루 사람을 가지고 Mac과 Windows, 자바입니다.

은 J.

+0

'main' 메소드에서'System.setProperty ("java.awt.headless", "false");가 제일 먼저해야합니다. 그 속성의 값은'headless '에 대한 fallback을 수행하므로'headless'에 대한 false 설정에 관계없이 속성을 먼저 감지하고'true'를 보는 경우에는' 사실 '. –

+0

맞춤 배너 이미지가 있습니까? 내 리소스에'banner.jpg'가있을 때 Springboot가'java.awt.headless'를'true'로 만듭니다. –

답변

0

Sikuli는 헤드리스 (headless) 모드에서 실행할 수 없습니다. 이는 알려진 제한 사항입니다. 그 이유는 Sikuli가 내부적으로 사용하고있는 Java Robot 라이브러리이기 때문입니다. 즉, Sikuli가 작동하도록 화면이있는 실행중인 기계가 있어야합니다.

+0

안녕하세요 Eugene, 저는 데스크탑에서이 앱을 실행합니다. 문제는 제가 사실입니다. 그것을 머리와 함께 실행하도록 강제 할 수는 없습니다. 어떻게 든 jvm/app는 jvm 매개 변수, 시스템 특성 또는 스프링 부트 설정을 무시하고 헤드리스 모드로 실행한다고 생각합니다. – johnnnie