java.awt.HeadlessException 在 docker 詹金斯
java.awt.HeadlessException in docker jenkins
当我 运行 在我的 jenkins 中 运行 正在通过 docker.
时,我在我的 selenium 代码中得到以下异常
当我使用机器人 class 为我的一个场景导入文件时,它就开始了。
当我 运行 我在 Jenkins 中的代码时,它给出了以下异常。
Exception:
java.awt.HeadlessException:
No X11 DISPLAY variable was set, but this program performed an operation which requires it.
at sun.awt.HeadlessToolkit.getSystemClipboard(HeadlessToolkit.java:309)
at PageObjectRep.QuickHlr.Click_on_Browser(QuickHlr.java:119)
at stepDefinations.HLR_LookUp.clickOnBrowser(HLR_LookUp.java:70)
at ✽.And Click on browser(Smoke.feature:178)
注意:Jenkins 运行正在 docker 中。
感谢您的提前帮助。
Toolkit.getDefaultToolkit().getSystemClipboard().setContents(sel,null);
System.out.println("selection" +sel);
// Wait for 5 seconds
Thread.sleep(5000);
System.out.println("Browse button clicked");
// Create object of Robot class
Robot robot = new Robot();
Thread.sleep(1000);
// Press Enter
robot.keyPress(KeyEvent.VK_ENTER);
// Release Enter
robot.keyRelease(KeyEvent.VK_ENTER);
// Press CTRL+V
robot.keyPress(KeyEvent.VK_CONTROL);
robot.keyPress(KeyEvent.VK_V);
// Release CTRL+V
robot.keyRelease(KeyEvent.VK_CONTROL);
robot.keyRelease(KeyEvent.VK_V);
Thread.sleep(1000);
//Press Enter
robot.keyPress(KeyEvent.VK_ENTER);
robot.keyRelease(KeyEvent.VK_ENTER);
}
快回答
您不能在没有用户界面的操作系统中 运行 GUI(图形用户界面)java 代码,例如在后台 objective 是 运行 应用程序的服务器模式。例如,您需要一个桌面。
详细回答
您可以将 Java 分为以下类别:
Java SE = 标准版。 通常用于具有 类 的 GUI 或桌面应用程序,如 JFrame、Robot、Toolkit 等。
此外,包含许多 Java 程序员应该学习的库和 API(java.lang、java.io、java.math、java.net、 java.util, 等等...) 并在下一类别中使用。
要运行这个应用程序,需要一个带有用户界面的操作系统。如果您 运行 此应用程序在 tomcat 中,在 jenkins、widfly 等服务器中使用 ubuntu/debian、solaris 等,由于缺少只有用户界面操作系统具有的依赖项,某些部分将无法工作.例如,java.awt.Robot可以将鼠标移动到x.y,但在shell服务器中没有鼠标。
Java EE =企业版。 Java平台(企业版)用于开发分布式系统,如数据库访问(JDBC、JPA)、远程方法调用 (RMI)、消息传递 (JMS)、Web 服务、XML 处理,并为企业 JavaBeans、servlet、portlet、Java 服务器定义标准 API页面等...
目前,此类别最常用于企业或公司系统开发:API rest、集成、安全、微服务等。还用于开发服务器、平台或库,如:Tomcat、Jenkins , Pentaho, Mule ESB, Selenium, Spring, 等等
Java ME = Micro Edition。 这是为移动设备开发应用程序的平台。我认为由于 Android 和其他工具,现在已弃用它。
当我 运行 在我的 jenkins 中 运行 正在通过 docker.
时,我在我的 selenium 代码中得到以下异常当我使用机器人 class 为我的一个场景导入文件时,它就开始了。 当我 运行 我在 Jenkins 中的代码时,它给出了以下异常。
Exception:
java.awt.HeadlessException:
No X11 DISPLAY variable was set, but this program performed an operation which requires it.
at sun.awt.HeadlessToolkit.getSystemClipboard(HeadlessToolkit.java:309)
at PageObjectRep.QuickHlr.Click_on_Browser(QuickHlr.java:119)
at stepDefinations.HLR_LookUp.clickOnBrowser(HLR_LookUp.java:70)
at ✽.And Click on browser(Smoke.feature:178)
注意:Jenkins 运行正在 docker 中。 感谢您的提前帮助。
Toolkit.getDefaultToolkit().getSystemClipboard().setContents(sel,null);
System.out.println("selection" +sel);
// Wait for 5 seconds
Thread.sleep(5000);
System.out.println("Browse button clicked");
// Create object of Robot class
Robot robot = new Robot();
Thread.sleep(1000);
// Press Enter
robot.keyPress(KeyEvent.VK_ENTER);
// Release Enter
robot.keyRelease(KeyEvent.VK_ENTER);
// Press CTRL+V
robot.keyPress(KeyEvent.VK_CONTROL);
robot.keyPress(KeyEvent.VK_V);
// Release CTRL+V
robot.keyRelease(KeyEvent.VK_CONTROL);
robot.keyRelease(KeyEvent.VK_V);
Thread.sleep(1000);
//Press Enter
robot.keyPress(KeyEvent.VK_ENTER);
robot.keyRelease(KeyEvent.VK_ENTER);
}
快回答
您不能在没有用户界面的操作系统中 运行 GUI(图形用户界面)java 代码,例如在后台 objective 是 运行 应用程序的服务器模式。例如,您需要一个桌面。
详细回答
您可以将 Java 分为以下类别:
Java SE = 标准版。 通常用于具有 类 的 GUI 或桌面应用程序,如 JFrame、Robot、Toolkit 等。
此外,包含许多 Java 程序员应该学习的库和 API(java.lang、java.io、java.math、java.net、 java.util, 等等...) 并在下一类别中使用。
要运行这个应用程序,需要一个带有用户界面的操作系统。如果您 运行 此应用程序在 tomcat 中,在 jenkins、widfly 等服务器中使用 ubuntu/debian、solaris 等,由于缺少只有用户界面操作系统具有的依赖项,某些部分将无法工作.例如,java.awt.Robot可以将鼠标移动到x.y,但在shell服务器中没有鼠标。
Java EE =企业版。 Java平台(企业版)用于开发分布式系统,如数据库访问(JDBC、JPA)、远程方法调用 (RMI)、消息传递 (JMS)、Web 服务、XML 处理,并为企业 JavaBeans、servlet、portlet、Java 服务器定义标准 API页面等...
目前,此类别最常用于企业或公司系统开发:API rest、集成、安全、微服务等。还用于开发服务器、平台或库,如:Tomcat、Jenkins , Pentaho, Mule ESB, Selenium, Spring, 等等
Java ME = Micro Edition。 这是为移动设备开发应用程序的平台。我认为由于 Android 和其他工具,现在已弃用它。