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

使用Tess4J的doOCR实现图片转文本时遇JNA方法缺失错误求解决

问题解决:Tess4J doOCR抛出NoSuchMethodError错误

错误原因

这个错误是JNA版本冲突导致的:项目中可能存在其他依赖引入了低版本JNA,和你配置的5.13.0版本冲突,导致Tess4J找不到对应的Native.load方法。

解决方案

1. 排查并排除依赖冲突

执行Maven命令查看依赖树,定位引入旧版本JNA的依赖:

mvn dependency:tree -Dverbose -Dincludes=net.java.dev.jna

找到冲突的依赖后,在该依赖的配置中添加exclusions,排除旧版本的JNA:

<dependency>
    <!-- 替换为冲突依赖的groupId和artifactId -->
    <groupId>xxx</groupId>
    <artifactId>xxx</artifactId>
    <exclusions>
        <exclusion>
            <groupId>net.java.dev.jna</groupId>
            <artifactId>jna</artifactId>
        </exclusion>
        <exclusion>
            <groupId>net.java.dev.jna</groupId>
            <artifactId>jna-platform</artifactId>
        </exclusion>
    </exclusions>
</dependency>

2. 强制指定JNA版本并隔离Tess4J的依赖

修改Maven依赖配置,排除Tess4J自带的JNA依赖,确保使用你指定的版本:

<dependencies>   
    <dependency>
        <groupId>net.sourceforge.tess4j</groupId>
        <artifactId>tess4j</artifactId>
        <version>5.7.0</version>
        <exclusions>
            <exclusion>
                <groupId>net.java.dev.jna</groupId>
                <artifactId>jna</artifactId>
            </exclusion>
            <exclusion>
                <groupId>net.java.dev.jna</groupId>
                <artifactId>jna-platform</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    <dependency>
        <groupId>net.java.dev.jna</groupId>
        <artifactId>jna</artifactId>
        <version>5.13.0</version>
    </dependency>
    <dependency>
        <groupId>net.java.dev.jna</groupId>
        <artifactId>jna-platform</artifactId>
        <version>5.13.0</version>
    </dependency>
</dependencies>

3. 清理并重建项目

执行以下命令清理旧的依赖文件,重新下载正确版本:

mvn clean install

同时检查IDE的依赖库目录,确保没有残留的旧版本JNA jar包,如有直接删除。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 01:27:00