Ubuntu20.04下OpenJDK16运行Swing程序报UnsatisfiedLinkError怎么解决
错误原因
该报错是因为你当前安装的OpenJDK 16为无头(headless)版本,该版本专为无图形界面的服务器环境设计,默认裁剪了AWT、Swing等Java GUI组件依赖的原生系统库,所以缺少运行Swing程序必须的libawt_xawt.so文件。
最佳解决方案
推荐直接安装完整的非无头版OpenJDK 16,一键补全所有GUI相关依赖,无需额外配置:
- 第一步:更新本地apt包索引
sudo apt update - 第二步:安装完整OpenJDK 16包
如果你之前只安装了sudo apt install openjdk-16-jdkopenjdk-16-jdk-headless,该命令会自动补充缺失的GUI组件,不会重复安装已有内容。 - 第三步(可选验证):确认缺失库已存在
执行后正常输出对应文件路径即为安装成功,再次运行你的Swing程序即可正常启动窗口。ls /usr/lib/jvm/java-16-openjdk-amd64/lib/libawt_xawt.so
可选精简方案
如果你不需要完整JDK,只想单独补全当前缺失的依赖,可执行以下命令:
sudo apt install libawt-xawt-java libxext6 libxrender1 libxtst6
该方案占用存储空间更小,但后续运行其他Java GUI程序时可能仍会遇到缺库问题,因此优先推荐安装完整JDK。
内容的提问来源于stack exchange,提问作者Masudur Rahman
相关产品推荐
相关产品推荐

