使用gradle构建imgui-java项目出现libglfw.so的UnsatisfiedLinkError如何解决
问题根因
该报错属于UnsatisfiedLinkError原生库加载异常,虽然imgui-java宣称内置了LWJGL及相关原生组件,但运行环境缺少GLFW所需的系统层面依赖、或JDK架构与系统架构不匹配时,依然会触发libglfw.so加载失败。
解决方案
按优先级依次操作即可解决:
- 先安装系统层GLFW依赖,不同发行版对应命令如下:
- Debian/Ubuntu 系列:
sudo apt install libglfw3 libx11-dev libxcursor-dev libxrandr-dev libxinerama-dev libxi-dev libxxf86vm-dev - Fedora/RHEL 系列:
sudo dnf install glfw libX11-devel libXcursor-devel libXrandr-devel libXinerama-devel libXi-devel libXxf86vm-devel
- Debian/Ubuntu 系列:
- 检查JDK架构与系统架构是否匹配:如果用32位JDK运行在64位系统上,会无法加载内置的64位原生库,更换为与系统架构一致的JDK即可。
- 若上述操作无效,可在
build.gradle的dependencies块中手动添加对应架构的原生库依赖:- x86_64架构Linux添加:
runtimeOnly "io.github.spair:imgui-java-natives-linux:$imgui_java_version" - ARM64架构Linux添加:
runtimeOnly "io.github.spair:imgui-java-natives-linux-arm64:$imgui_java_version"
- x86_64架构Linux添加:
内容的提问来源于stack exchange,提问作者Yaroshenko Yaroslav
相关产品推荐
相关产品推荐

