【问题标题】:java.lang.UnsatisfiedLinkError: Le module spécifié est introuvable.on Tess4Jjava.lang.UnsatisfiedLinkError: Le module spécifié est introuvable.on Tess4J
【发布时间】:2017-09-20 12:59:43
【问题描述】:

我正在使用 Spring MVC 和 Maven 开发一个 Web 应用程序,并使用 tess4j 进行 OCR 的一些功能。

我的开发环境:

  • Eclipse Neon.3
  • 操作系统:win server 2008R2
  • jvm 64 位
  • apache tomecat 9

我从http://tess4j.sourceforge.net/ 下载了最新版本的Tess4J 并将其导入到eclipse 中。我正在关注这个 URL,我遵循了所有步骤,但是当我尝试执行它时,我收到以下错误:

java.lang.UnsatisfiedLinkError: Le module spécifié est introuvable.

at com.sun.jna.Native.open(Native Method)
at com.sun.jna.Native.open(Native.java:1759)
at com.sun.jna.NativeLibrary.loadLibrary(NativeLibrary.java:260)
at com.sun.jna.NativeLibrary.getInstance(NativeLibrary.java:398)
at com.sun.jna.Library$Handler.<init>(Library.java:147)
at com.sun.jna.Native.loadLibrary(Native.java:412)
at com.sun.jna.Native.loadLibrary(Native.java:391)
at net.sourceforge.tess4j.util.LoadLibs.getTessAPIInstance(LoadLibs.java:75)
at net.sourceforge.tess4j.TessAPI.<clinit>(TessAPI.java:42)
at net.sourceforge.tess4j.Tesseract.init(Tesseract.java:367)
at net.sourceforge.tess4j.Tesseract.doOCR(Tesseract.java:280)
at net.sourceforge.tess4j.Tesseract.doOCR(Tesseract.java:212)
at net.sourceforge.tess4j.Tesseract.doOCR(Tesseract.java:196)

我尝试一些教程并添加: .MV C++ 2015 可再发行版 (x64) .我添加 C:\Program Files (x86)\Apache Software Foundation\Tomcat 9.0\temp\tess4j\win32-x86-64

我仍然有错误。

【问题讨论】:

    标签: java spring-mvc ocr tesseract tess4j


    【解决方案1】:

    本质上发生的是系统无法找到一个名为“spécifié”的本机模块(我想,我看不懂法语)来加载。现在机制是这样的。在某个地方(可能在罐子里)的加载时间期间,正在拨打电话

    System.loadLibrary("spécifié");
    

    由于本机库不在 PATH 上,因此失败。因此,一个简单的解决方案是将模块放在 PATH 上。如果是 Windows 环境,那么模块将是一个名为 spécifié.dll 的 DLL 文件。此文件必须放在路径上(例如,设置 PATH=C:\xyz\spécifié.dll)。

    试试看。

    【讨论】:

    • 感谢您的回答。我在我的代码中设置了这样的路径: public class test { public static void main(String[] args) { System.setProperty("jna.library.path", " src/main/resources/win32-x86-64");文件 imageFile = new File("eurotext.tif"); ITesseract 实例 = 新的 Tesseract(); try{ 字符串结果 = instance.doOCR(imageFile); System.out.println(结果); }catch(TesseractException e){ System.err.println(e.getMessage()); } }
    • 尝试在命令提示符中手动设置路径并使用“java”命令执行您的类。或者,如果您使用的是 eclipse,请转到环境变量并设置路径,然后重新启动 eclipse。您的问题是 VM 在 PATH 上找不到文件,一旦发生这种情况,它应该可以工作。
    • “Le module spécifé”的意思是“指定的模块”...它字面意思并不是在寻找一个名为“spécifié”的模块。
    猜你喜欢
    • 2016-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-14
    • 1970-01-01
    相关资源
    最近更新 更多