Ubuntu 22.04下Java图形程序X11 DISPLAY变量异常求助
解决Java图形程序"No X11 DISPLAY variable was set"错误(Ubuntu 22.04双系统)
一、验证当前Java是否为headless版本
有两种快速验证方式:
- 查看已安装的OpenJDK包
执行以下命令,检查系统中安装的OpenJDK相关包:
dpkg -l | grep openjdk-19
如果输出仅包含openjdk-19-jre-headless,无openjdk-19-jre条目,说明当前使用的是仅支持无界面操作的headless版本。
- 通过Java系统属性检测
执行以下命令,查看Java是否处于headless模式:
java -XshowSettings:properties | grep java.awt.headless
若输出显示java.awt.headless = true,则确认当前Java为headless版本,不支持图形界面功能。
二、修复步骤
1. 安装完整的OpenJRE/JDK
确认是headless版本后,先卸载headless包,再安装完整的JRE(或JDK,需编译代码时选后者):
# 卸载headless版本 sudo apt remove openjdk-19-jre-headless # 安装完整JRE sudo apt install openjdk-19-jre # 需要编译代码则安装完整JDK sudo apt install openjdk-19-jdk
2. 切换默认Java版本(多版本共存时)
若系统中存在多个Java版本,执行以下命令切换到完整版本:
sudo update-alternatives --config java
在弹出的选项列表中,选择对应完整JRE的序号并按回车确认。
3. 配置Eclipse的Java环境
打开Eclipse,依次操作:Window > Preferences > Java > Installed JREs,检查已配置的JRE是否为完整版本。若不是,点击Add按钮,选择刚安装的完整JRE目录,将其设置为默认JRE。
完成以上操作后,重新编译运行你的Java图形程序,即可正常显示窗口。
内容的提问来源于stack exchange,提问作者Viviane
相关产品推荐
相关产品推荐

