`
kingquake21
  • 浏览: 270034 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

远程启动的服务依赖显示环境导致java.awt.HeadlessException

 
阅读更多

服务器没有显示器,通过ssh登录启动的基于java的web服务,在java中有段生成缩略图的代码调用了Toolkit.getDefaultToolkit().getScreenResolution();,依赖显示环境

 

以下记录几个实验结果:

1、ssh user@ip之后,直接启动jetty.sh start,在生成缩略图时报错

java.awt.HeadlessException: 
No X11 DISPLAY variable was set, but this program performed an operation which requires it.
	at sun.awt.HeadlessToolkit.getScreenResolution(HeadlessToolkit.java:221)

     这个解决办法:在ssh登录时加上 -X 选项

 

2、ssh -X user@ip 之后,设置-Djava.awt.headless=true,再启动jetty.sh start &,在生成缩略图时报错:

java.awt.HeadlessException
        at sun.awt.HeadlessToolkit.getScreenResolution(HeadlessToolkit.java:221)
 

3、ssh -X user@ip 之后,再启动jetty.sh start,没有问题

 

4、ssh -X user@ip 之后,设置-Djava.awt.headless=false,再启动jetty.sh start &,在生成缩略图时报错:

java.lang.InternalError: Can't connect to X11 window server using 'localhost:11.0' as the value of the DISPLAY variable.
        at sun.awt.X11GraphicsEnvironment.initDisplay(Native Method)
        at sun.awt.X11GraphicsEnvironment.access$200(X11GraphicsEnvironment.java:62)
        at sun.awt.X11GraphicsEnvironment$1.run(X11GraphicsEnvironment.java:178)
        at java.security.AccessController.doPrivileged(Native Method)
        at sun.awt.X11GraphicsEnvironment.<clinit>(X11GraphicsEnvironment.java:142)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:186)
        at java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(GraphicsEnvironment.java:82)
        at sun.awt.X11.XToolkit.<clinit>(XToolkit.java:112)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:186)
        at java.awt.Toolkit$2.run(Toolkit.java:849)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.awt.Toolkit.getDefaultToolkit(Toolkit.java:841)

分享到:
评论

相关推荐

    JAVA 程序 源代码 import java.applet.*;import java.awt.*

    import java.awt.*"表明这段源代码涉及了Java编程语言,特别是与Applet和图形用户界面(GUI)相关的部分。`import`语句是Java中用于引入库或包的机制,以便能够使用其中的类和方法。在给定的描述中,没有更多的具体...

    java的.awt包和java.util包的区别

    例如,`java.awt`包中的组件会根据不同的操作系统显示不同的外观。而`javax`包中的类通常被设计为跨平台的,更加独立于具体的操作系统。 - **用途差异**:`java`包适用于编写一般的Java应用程序,而`javax`包则更多...

    Java的AWT包.pdf

    Java的Abstract Window Toolkit(AWT)包是Java标准版(Java SE)的一部分,它提供了一组基本的组件和接口,用于创建图形用户界面(GUI)。在Java编程中,如果你需要开发带有窗口、按钮、文本框等元素的应用程序,AWT就是...

    用Java.awt包中类写的记事本

    整合了java.awt.*;java.awt.event.*;javax.swing.*包中的类,结合布局与事件处理....这是本人自己写的哦

    import java.awt.docx

    在我们的代码中,我们可以看到 import 语句中包含了 java.awt 和 javax.swing.*,这说明了我们使用的是 Java 的 AWT 和 Swing 工具包。 2. JFrame 和 JDialog 的使用 在我们的代码中,我们可以看到 MainWindow 类...

    JAVA_CH.rar_java awt chm_java.awt.geom chm

    `JAVA_完完全全的中文版.chm`文件应该是一个完整的中文Java教程或者API文档,覆盖了Java的各个方面,不仅限于AWT和`java.awt.geom`,还包括了Java的基础语法、集合框架、IO流、多线程、网络编程等内容。而`...

    Java-AWT

    Java AWT(Abstract Window Toolkit)是Java平台早期的图形用户界面(GUI)工具包,它为开发者提供了构建桌面应用程序的基本组件,如按钮、文本框、菜单等。在Java的早期版本中,AWT是GUI编程的主要框架,但现在已经...

    awt包java Android

    awt包java Android awt包java Android awt包java Android awt包java Android awt包java Android awt包java Android awt包java Android awt包java Android awt包java Android awt包java Android awt包java Android ...

    JAVA API官方中文版手册chm文件文档

    java.awt.color java.awt.datatransfer java.awt.dnd java.awt.event java.awt.font java.awt.geom java.awt.im java.awt.im.spi java.awt.image java.awt.image.renderable java.awt.print java.beans ...

    这是一个使用 Java 语言 ( java.awt + java.swing ) 实现的 2048 游戏程序.zip

    在这个项目中,开发者采用Java编程语言,结合java.awt和java.swing库,构建了一个可运行的2048游戏程序。下面我们将深入探讨这个项目的实现细节。 首先,java.awt和java.swing是Java GUI(图形用户界面)设计的主要...

    Java.awt实现的符合面向对象思想的贪吃蛇游戏.zip

    《基于Java.awt实现的面向对象贪吃蛇游戏详解》 贪吃蛇游戏,作为一个经典的编程实践项目,一直是初学者和专业开发者提升技能的好选择。本项目以Java.awt库为基础,充分体现了面向对象的设计思想,是Java后端开发的...

    jsb.zip_awt_event_import java.awt._java 记事本

    简单的记事本的JAVA程序,//导入awt包,event包 import java.awt.*

    Javaweb仓库管理系统项目源码+数据库.zip

    import java.awt.AlphaComposite; import java.awt.GradientPaint; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.GridBagConstraints; import java.awt.GridBagLayout; import java.awt....

    项目源码-java进销存管理系统

    import java.awt.BorderLayout; import java.awt.Color; import java.awt.Image; import java.awt.Insets; import java.awt.Toolkit; import java.awt.event.ActionEvent; import java.awt.event.ComponentAdapter; ...

    Matlab_JavaAWTRobot​_Project.m:MATLAB 中的 java.awt.Robot 类-matlab开发

    该程序显示了 MATLAB.Mouse 中 java.awt.Robot 类的用法,随机改变屏幕上的位置,并同时为您提供鼠标所在的 rgb 值。 为了运行 Matlab_JavaAWRobot_Project.m 你必须下载我提交的 getRobotClass.m 和 JavaRobotClass...

    AWT在linux下的中文乱码

    AWT(Abstract Window Toolkit)是Java早期提供的一个用于创建GUI的基本库,它依赖于本地操作系统来提供窗口和其他图形元素。然而,由于编码差异和字体支持的问题,在Linux系统下,AWT可能会遇到显示中文字符时出现...

    很久以前用java.awt库写的小游戏的汇总.zip

    在本压缩包“很久以前用java.awt库写的小游戏的汇总.zip”中,包含的是使用Java编程语言开发的一系列小游戏。这些游戏利用了Java的`java.awt`库,这是一个早期的图形用户界面(GUI)包,用于创建和管理窗口、控件和...

    improved-polygon:改进 java.awt.Polygon contains() 方法的多边形类

    改进 java.awt.Polygon contains() 方法的多边形类。 java.awt.Polygon 中的 contains() 方法可能不会为您期望的所有点返回 true。 示例:xArray = {0, 5, 10, 15, 15, 0},yArray = {0, 5, 3, 10, 0, 0}。 对于...

Global site tag (gtag.js) - Google Analytics