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

JNA库已存在却无法加载,Tess4J初始化失败求助

解决Tess4j中Could not initialize class net.sourceforge.tess4j.TessAPI报错(已找到库但无法加载)

问题重现

运行Tess4j时抛出以下错误:

java.lang.NoClassDefFoundError: Could not initialize class net.sourceforge.tess4j.TessAPI

JNA调试日志显示已定位到libtesseract304.dll文件路径,但加载失败,且团队其他成员使用相同配置可正常运行。

可行解决方案

  • 安装对应版本的VC++运行时库
    libtesseract304.dll依赖Visual C++ Redistributable for Visual Studio 2015(x64版本)。若本地未安装该运行时,会导致DLL无法加载,直接安装对应x64版本即可。

  • 清理临时目录并重启项目
    JNA会将Jar中的DLL解压到临时目录C:\Users\pjfg787\AppData\Local\Temp\tess4j,若临时文件损坏会导致加载失败。手动删除该目录下所有文件,重启项目后JNA会重新解压完整库文件。

  • 验证JVM架构与库的兼容性
    确认本地JDK为x64版本:执行java -version,查看输出中是否包含64-Bit标识。若使用x86版本JDK,无法加载x64架构的libtesseract304.dll,需切换为x64版本JDK。

  • 手动指定JNA库路径
    在项目VM参数中添加-Djna.library.path=本地存放Tess4j依赖库的目录,将libtesseract304.dll和tess4j依赖的liblept171.dll放入该目录,绕过临时目录自动解压逻辑,避免权限或文件损坏问题。

  • 核对依赖版本一致性
    检查pom.xml中tess4j、jna等相关依赖的版本是否与团队成员完全一致。例如tess4j 3.1.0需匹配jna 4.2.2,版本不匹配可能导致库加载逻辑异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 13:20:32