我使用的是一个自动运行构建和测试的CIS。这些测试在Windows环境下运行良好,但当运行时,抛出的X11显示变量未设置。
我确保安装了X11,并且可以使用Xmanager取回xclock。目的不是将显示推送到客户端,但我使用Xmanager来验证是否安装了X11。
当显示未导出时,使用图形的测试将失败,但当我set export DISPLAY=0.0时,它会抛出java.lang.NoClassDefFoundError: sun/awt/X11GraphicsEnvironment。
本源说cNF的异常是误导的。
以下是该内容的碎片:
不幸的是,这个错误消息有点误导人。此消息实际上并不反映类加载问题。通过在适当的配置文件中设置DISPLAY环境变量,可以避免错误。
这意味着显示不能正确导出,但测试不会报告缺少X11显示。我错过了什么?
非常感谢您的建议!
发布于 2011-01-10 13:20:08
从您的描述中,我不确定您是否想在不使用X11的情况下运行测试。在这种情况下,您可以使用无头模式告诉AWT您不需要图形输出。这应该允许您的测试运行,如果它们不是交互式的。
我看不出你如何能够运行像xclock这样的东西,但不能运行Java。是否遗漏了中间步骤?您是否将ssh导入应该运行测试的主机?
发布于 2011-01-10 16:06:42
出口DISPLAY=0.0
这是语法错误。您必须使用:export DISPLAY=:0.0
(注意冒号。)
一旦正确,您将需要确保您的测试运行的用户具有对X服务器的权限。请参阅xauth或关于不安全但琐碎的测试xhost +。
发布于 2011-01-10 16:18:17
你有X显示器在运行吗?
获得自动测试显示的一种常见方法是使用Xvfb“假”显示服务器。运行Xvfb,然后设置指向它的显示。
https://stackoverflow.com/questions/4647212
复制相似问题