java.awt.HeadlessException:在maven构建期间没有设置X11 DISPLAY变量错误

时间:2014-03-12 13:47:08

标签: java linux maven applet

代码

public class Abc extends Applet{

  public Abc(){
   super();
   //some codes
  }

Junit测试

public class AbcTest extends TestCase{

 @Before

 public void setup() throws exception{

  Abc abc = new Abc()
 }

 @Test
// Some test methods.

}

错误

java.awt.HeadlessException: No X11 DISPLAY variable was set, but this program performed an operation which requires it.
at java.applet.Applet.<init>(Applet.java:75)

在Windows中构建成功。 这是linux问题吗?

如何在不删除完整测试类的情况下删除此错误。

提前致谢

Abbin

3 个答案:

答案 0 :(得分:2)

您可能正在使用awt中的类而无法访问X服务器。

为避免这种情况,请将此选项传递给JVM:-Djava.awt.headless=true

在Windows中,始终有显示,因此这绝不是问题......

答案 1 :(得分:0)

某些Java类要求显示器正常工作,在Linux下运行X11会话时可能会出现问题。解决此问题的一种方法是使用xvfb创建将在使用maven构建时使用的虚拟显示。

答案 2 :(得分:0)

我使用Debian,默认情况下junit尝试启动GUI,这会给我此错误消息。 (我猜它想显示测试结果。)您可以通过使用-text开关来调用它来避免这种情况。