0

我正在使用自动运行构建和测试的 CIS。测试在 Windows 上运行良好,但在 rhel 中运行时抛出 X11 Display variable not set。

我确保安装了 X11,并且可以使用 Xmanager 取回 xclock。目的不是将显示推送到客户端,而是我使用 Xmanager 来验证是否安装了 X11。

当显示未导出时,使用图形的测试失败,但当 I 时set export DISPLAY=0.0,它抛出java.lang.NoClassDefFoundError: sun/awt/X11GraphicsEnvironment

该消息来源称 cNF 异常具有误导性。

这是该内容的片段:

不幸的是,此错误消息有些误导。此消息实际上并不反映类加载问题。通过在适当的配置文件中设置 DISPLAY 环境变量可以避免该错误。

这意味着显示未正确导出,但测试未报告缺少 X11 显示。我想做什么?

建议表示赞赏!

4

3 回答 3

2

导出显示=0.0

这是一个语法错误。您必须使用: export DISPLAY=:0.0

(注意冒号。)

一旦这是正确的,您将需要确保您的测试运行的用户具有 X 服务器的权限。请参阅xauth或 进行不安全但微不足道的测试xhost +

于 2011-01-10T16:06:42.063 回答
1

您是否正在运行 X 显示器?

为自动化测试获得显示的一种常见方法是使用 Xvfb“假”显示服务器。运行 Xvfb,然后设置 DISPLAY 指向它。

于 2011-01-10T16:18:17.347 回答
0

如果您想在没有 X11 的情况下运行测试,我不确定您的描述。在这种情况下,您可以使用无头模式告诉 AWT 您不需要图形输出。如果它们不是交互式的,那应该允许您的测试运行。

我看不出你如何能够运行像 xclock 这样的东西,但不能运行 Java。是否缺少任何中间步骤?你 ssh 到应该运行测试的主机吗?

于 2011-01-10T13:20:08.760 回答