【问题标题】:Access X11 display访问 X11 显示屏
【发布时间】:2011-01-10 13:14:32
【问题描述】:

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

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

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

This source 表示 cNF 异常具有误导性。

这是该内容的片段:

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

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

欢迎提出建议!

【问题讨论】:

  • 问题的主题不是很有启发性(也不是问题;)

标签: linux x11 rhel


【解决方案1】:

导出 DISPLAY=0.0

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

(注意冒号。)

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

【讨论】:

  • 嗨,Nathan,我使用带有冒号的命令,这是问题中的错字。我需要使用 xauth 或 xhost+ 进行检查。谢谢!
【解决方案2】:

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

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

【讨论】:

  • 我尝试安装xvfb但有很多冲突,如果其他选项不起作用我会尝试安装它
【解决方案3】:

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

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

【讨论】:

  • 您好 ShiDoiSi,感谢您的回复!我希望在启用 X11 的情况下运行测试。服务器从 svn 签出代码,构建并运行测试。我不会通过 ssh 进入服务器来运行测试。测试会定期运行,或者当有人检查 svn 时运行。
  • 我使用 Xmanager 使用 ssh 只是为了确认服务器是否可以显示图形。
  • 集成服务器在 Linux 服务器中有一个单独的帐户,该帐户是否需要任何特殊权限才能使用 X11 环境?
  • @Mohan 您是使用 ssh 登录其他帐户,还是使用任何其他方式,例如“su”?您是否确认您可以开始,例如来自该帐户的 xclock?
  • 是的,我使用 ssh 登录我的帐户。我没有通过从该帐户运行 xclock 来验证它。我刚刚从我的帐户中尝试过。我会检查的。谢谢!
猜你喜欢
  • 2010-10-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-16
  • 1970-01-01
相关资源
最近更新 更多