我们有一台Mac Mini可以在我们办公室的Mac Mini上使用Brew Jenkins安装进行一些自动化测试,我们正在使用名为“Genie”的测试工具,在它的较低级别创建一个{ {1}},但在java.awt.Robot
时,会出现sun.awt.HToolkit.createRobot
。
java.awt.HeadlessException
有趣的是,完全相同的工作在我自己的MacBook Pro上完全正常,完全相同的Jenkins安装。
真的很困惑,并尝试了一些突然出现在这里的解决方法,启动脚本是:
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
在static {}块中,在构造函数和start()函数中。
两台机器都是最新的Mavericks OS机器。
答案 0 :(得分:0)
因此,对于这个特定的实例,让它工作的方法是确保Jenkins会话作为真正的,登录的,完全用户启动。
有了Genie,显然createRobot
,他们确实如此。
因此,为了让事情恢复正常,我们更改了用户Jenkins
正在运行Mac Mini上的真实帐户,然后我们更改了从系统服务启动的方式,登录前启动,登录后从登录用户开始的用户服务。
这就是我偶然和默认的方式,将它安装在我的笔记本电脑上,以及为什么它在没有事故的情况下工作。