You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu20.04 Docker镜像中Spring Boot调用Tesseract报错求助

问题分析

你遇到的java.lang.UnsatisfiedLinkError核心原因是依赖版本不兼容:

  • 你使用的tess4j 5.6.0自带的lept4j 1.18.0需要调用Leptonica 1.80.0及以上版本才有的boxaSizeConsistency函数
  • 但Ubuntu 20.04官方仓库默认提供的Leptonica版本是1.79.0,该版本不存在这个函数,导致JNA查找符号失败

解决方案

提供两种可行方案,按需选择:

方案一:升级系统Leptonica到兼容版本

Ubuntu 20.04官方仓库无高版本Leptonica,需手动编译安装匹配lept4j 1.18.0的1.82.0版本:
修改Dockerfile,替换原有的libleptonica-dev安装步骤:

# 安装编译依赖
RUN apt-get update \
    && apt-get install -qq \
    build-essential autoconf automake libtool pkg-config \
    libgif-dev libjpeg-dev libpng-dev libtiff-dev zlib1g-dev libwebp-dev libopenjp2-7-dev

# 编译安装Leptonica 1.82.0
RUN cd /tmp \
    && wget https://github.com/DanBloomberg/leptonica/releases/download/1.82.0/leptonica-1.82.0.tar.gz \
    && tar xzf leptonica-1.82.0.tar.gz \
    && cd leptonica-1.82.0 \
    && ./configure \
    && make \
    && make install \
    && ldconfig

# 安装Tesseract及语言包
RUN apt-get update \
    && apt-get install -qq \
    tesseract-ocr \
    tesseract-ocr-deu \
    libtesseract-dev

方案二:降级tess4j匹配系统Leptonica版本

如果不想编译源码,可降级tess4j到支持Leptonica 1.79.0的版本:
修改pom.xml中的依赖:

<dependency>
    <groupId>net.sourceforge.tess4j</groupId>
    <artifactId>tess4j</artifactId>
    <version>4.5.4</version>
</dependency>

重新构建Jar包和Docker镜像即可。


验证

执行以下命令确认版本兼容性:

# 方案一验证Leptonica版本
leptonica-config --version
# 检查库链接情况
ldd /lib/x86_64-linux-gnu/liblept.so.5 | grep lept

内容的提问来源于stack exchange,提问作者SirNight

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 08:25:05