在Mac Mini上使用带有Jenkins的java.awt.Robot的HeadlessException

时间:2014-06-19 16:25:43

标签: java jenkins awtrobot

我们有一台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机器。

1 个答案:

答案 0 :(得分:0)

因此,对于这个特定的实例,让它工作的方法是确保Jenkins会话作为真正的,登录的,完全用户启动。

有了Genie,显然createRobot,他们确实如此。

因此,为了让事情恢复正常,我们更改了用户Jenkins正在运行Mac Mini上的真实帐户,然后我们更改了从系统服务启动的方式,登录前启动,登录后从登录用户开始的用户服务。

这就是我偶然和默认的方式,将它安装在我的笔记本电脑上,以及为什么它在没有事故的情况下工作。