`
kingquake21
  • 浏览: 268954 次
  • 性别: 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包.pdf

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

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

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

    用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流、多线程、网络编程等内容。而`...

    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-AWT

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

    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