Can't connect to X11 window server using 'localhost:0.0' 的解决

本文记录了在Linux环境下安装Oracle过程中遇到的“Can't connect to X11 window server”错误及其解决方案。通过设置DISPLAY环境变量和使用xhost命令解决了图形界面无法启动的问题。

安装Oracle时出现如下错误

[oracle@localhost database]$ ./runInstaller
Starting Oracle Universal Installer...

Checking installer requirements...

Checking operating system version: must be redhat-3, SuSE-9, redhat-4, UnitedLinux-1.0, asianux-1 or asianux-2
                                      Passed


All installer requirements met.

Preparing to launch Oracle Universal Installer from /tmp/OraInstall2009-06-07_12-13-22PM. Please wait ...[oracle@localhost database]$ Exception in thread "main" java.lang.InternalError: Can't connect to X11 window server using 'localhost:0.0' as the value of the DISPLAY variable.
        at sun.awt.X11GraphicsEnvironment.initDisplay(Native Method)
        at sun.awt.X11GraphicsEnvironment.<clinit>(Unknown Source)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Unknown Source)
        at java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(Unknown Source)
        at java.awt.Window.init(Unknown Source)
        at java.awt.Window.<init>(Unknown Source)
        at java.awt.Frame.<init>(Unknown Source)
        at oracle.ewt.popup.PopupFrame.<init>(Unknown Source)
        at oracle.ewt.lwAWT.BufferedFrame.<init>(Unknown Source)
        at oracle.sysman.oio.oioc.OiocOneClickInstaller.<init>(OiocOneClickInstaller.java:378)
        at oracle.sysman.oio.oioc.OiocOneClickInstaller.main(OiocOneClickInstaller.java:2091)

 

执行如下命令得以解决,而不是很多人说的export DISPLAY=localhost:0.0, 不知道为什么这样,有谁知道告诉我,furtherchan@163.com ,非常感谢

[oracle@localhost database]$ export DISPLAY=:0
[oracle@localhost database]$ su
Password:
[root@localhost database]# xhost + localhost
localhost being added to access control list

 

PS: xhost + hostname /IP : 指定的host就可以让Client端能使用当前服务器的X Server,即用服务器的显示设备做为终端来输出。

 

 

在 Java 程序中出现 `java.awt.AWTError: Can't connect to X11 window server using ':0.0' as the value of the DISPLAY variable` 错误通常是由于 Java 程序尝试连接 X11 窗口服务器失败导致的,以下是一些可能的解决方法: ### 1. 检查 X11 服务器是否正在运行 在 Linux 系统中,X11 服务器负责管理图形界面。可以通过以下命令检查 X11 服务器是否正在运行: ```bash ps -ef | grep Xorg ``` 如果没有输出,说明 X11 服务器可能没有运行,需要启动它。在大多数情况下,X11 服务器会在系统启动时自动启动。 ### 2. 检查 DISPLAY 环境变量 确保 `DISPLAY` 环境变量设置正确。可以使用以下命令查看当前的 `DISPLAY` 变量值: ```bash echo $DISPLAY ``` 如果该值不是正确的 X11 服务器地址,可以使用以下命令设置: ```bash export DISPLAY=:0.0 ``` ### 3. 允许远程连接 X11 服务器 如果是在远程服务器上运行 Java 程序,需要允许远程连接 X11 服务器。可以使用以下命令: ```bash xhost + ``` 此命令会允许任何客户端连接到 X11 服务器,这在安全环境中可能存在风险,使用后记得及时撤销: ```bash xhost - ``` ### 4. 在 Docker 中运行时的配置 如果是在 Docker 容器中运行 Java 程序,需要进行额外的配置。在启动容器时,需要将 `DISPLAY` 环境变量传递给容器,并挂载 X11 套接字: ```bash docker run -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix your_image ``` ### 5. 无头模式运行 Java 程序 如果 Java 程序不需要图形界面,可以在启动时使用无头模式。在 Java 代码中添加以下系统属性: ```java System.setProperty("java.awt.headless", "true"); ``` 或者在启动 Java 程序时添加 `-Djava.awt.headless=true` 参数: ```bash java -Djava.awt.headless=true YourMainClass ``` ### 6. 检查依赖和配置 确保项目中的依赖和配置没有问题。例如,在使用 Spring Boot 和 POI 导出文件时,检查 `pom.xml` 文件中的配置是否正确,避免不必要的静态配置影响程序运行 [^5]。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值