报错解决: Can't connect to X11 window server using.....

本贴最后更新于 423 天前,其中的信息可能已经东海扬尘

一、前言

开发的的代码在本地和其它测试 Linux 环境均正常,但是在我新安装的 tomcat8 下运行时却报了以下错错误,因此直接排除了代码等原因,直接找到了对应的环境

Caused by: java.awt.AWTError: Can't connect to X11 window server using 'localhost:11.0' as the value of the DISPLAY variable.

原因:

数据导出时通过 AWT 实现的, 而 AWT 会调用操作系统本地窗口资源来绘图, windows 可以很好地支持;但在 linux 下,如果没有进到 X window , 就无法使用 AWT 绘图。

二、解决方案

通过网上资源的搜索,我找到了两种解决方案,我个人采用的是第二种方案。

1、优化 JDK 环境

进入自己的 JD 安装目录,在 bin 文件夹下修改 JAVAC 文件 启动 x server2。在 java 运行参数上加-Djava.awt.headless=true,Linux 的目录通常如下:/usr/java/jdk1.6.0_23/bin 文件夹下的 javac 文件中

2、服务器进行优化

2.1、tomcat 服务器

修改 tomcat 文件夹中 bin 目录下的 startup.sh 文件

export CATALINA_OPTS="-Djava.awt.headless=true"

01connecttoX11window.jpg

2.2、Weblogic 服务器

如若是 Weblogic 服务器,则修改它的 setDomainEnv.sh 文件

JAVA_OPTIONS="${JAVA_OPTIONS} -Djava.awt.headless=true"

参考图片:

02connecttoX11window.jpg

  • Java

    Java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由 Sun Microsystems 公司于 1995 年 5 月推出的。Java 技术具有卓越的通用性、高效性、平台移植性和安全性。

    3170 引用 • 8209 回帖 • 1 关注
  • Linux

    Linux 是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIX 和 Unix 的多用户、多任务、支持多线程和多 CPU 的操作系统。它能运行主要的 Unix 工具软件、应用程序和网络协议,并支持 32 位和 64 位硬件。Linux 继承了 Unix 以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

    929 引用 • 937 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...