2014-06-19 4 views
0

우리는 우리의 사무실에있는 Mac Mini에서 Brew Jenkins 설치의 자동 테스트를 수행하는 Mac Mini를 가지고 있습니다.이 도구는 우리가 테스트 도구를 사용하고 있습니다. 낮은 수준 인 "Genie"는 java.awt.Robot을 생성하지만 sun.awt.HToolkit.createRobot에는 java.awt.HeadlessException이 발생합니다.Mac Mini에서 Jenkins와 함께 java.awt.Robot을 사용하는 HeadlessException

java.awt.HeadlessException 
at sun.awt.HToolkit.createRobot(HToolkit.java:160) 
at java.awt.Robot.init(Robot.java:138) 
at java.awt.Robot.<init>(Robot.java:96) 
at com.adobe.genie.genieUIRobot.UIFunctions.<init>(Unknown Source) 
at com.adobe.genie.executor.uiEvents.UIImage.<init>(Unknown Source) 

재미있는 것은 동일한 작업 젠킨스 설치 동일한 양조에서 프로 내 자신의 맥북에 완벽하게 잘 작동한다는 것입니다. 정말 그것에 대해 혼란, 여기에 팝 한 해결 방법 몇 가지 답변을 시도

, 발사 스크립트는 다음 TestScript.java에서 다음

java -Djava.awt.headless=false -jar /Developer/Genie/GenieScripts/Executor.jar --logFolder /tmp /Developer/Genie/GenieScripts/bin/scripts/TestScript.class 

그리고,

System.setProperty("java.awt.headless", "false"); 
System.setProperty("javafx.macosx.embedded", "true"); 
있다

정적 {} 블록, 생성자 및 start() 함수.

두 기계 모두 최신 Mavericks OS 기계입니다.

답변

0

그래서이 특정 인스턴스의 경우 Jenkins 세션이 실제 로그인 된 헤드 풀 사용자로 시작되었는지 확인하는 것이 좋습니다.

지니와 분명히 createRobot과 함께했습니다.

다시 돌아가 실행하기 위해 Jenkins이 Mac Mini의 실제 계정에 대해 실행 중이었던 것을 변경 한 다음 이전부터 시스템 서비스에서 시작하는 방식을 변경했습니다. 로그인 후, 로그인 한 사용자가 로그인 한 사용자 서비스로 로그인하십시오.

그건 내가 실수로 기본으로 노트북에 설치 한 것이고, 따라서 그것은 나에게 사고가없는 이유였습니다.