一、问题描述
在服务器上运行Jar包,出现:
Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Handler dispatch failed; nested exception is java.lang.UnsatisfiedLinkError: /usr/local/jdk-11.0.23/lib/libfontmanager.so: libfreetype.so.6: 无法打开共享对象文件: 没有那个文件或目录]
二、解决方法
1、在服务器上安装libfreetype6库
# 基于RedHat系统(如CentOS)
sudo yum install freetype
# 基于Debian 系统(如 Ubuntu)
sudo apt-get update
sudo apt-get install libfreetype6
2、配置LD_LIBRARY_PATH环境变量
将上述行添加到你的 shell 配置文件(如 .bashrc 或 .bash_profile),然后重新加载配置文件:
sudo vim ~/.bashrc # 或者 sudo vim ~/.bash_profile
# 如果 libfreetype.so.6 位于 /usr/local/lib 目录中
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
三、原理说明
java.lang.UnsatisfiedLinkError错误通常表示JVM无法找到或加载所需的本地库。在你的错误信息中,问题是 JVM 无法找到或加载 libfreetype.so.6 共享库,这是一个与字体管理相关的库。