在java中使用TESSERACT API时出现java.lang.UnsatifiedLinkError异常

在java中使用TESSERACT API时出现java.lang.UnsatifiedLinkError异常,java,api,ocr,tesseract,jna,Java,Api,Ocr,Tesseract,Jna,我正在尝试使用Tesseract OCR API的Java JNA包装器,但我一直得到Java.lang.UnsatifiedLinkError异常 我从网上下载了最新版本 我确保使用32位JVM。以下是异常跟踪 线程“main”java.lang.UnsatisfiedLinkError中出现异常:找不到指定的模块 在com.sun.jna.Native.open(本机方法) 在com.sun.jna.Native.open(Native.java:1759) 在com.sun.jna.nat

我正在尝试使用Tesseract OCR API的Java JNA包装器,但我一直得到Java.lang.UnsatifiedLinkError异常

我从网上下载了最新版本

我确保使用32位JVM。以下是异常跟踪

线程“main”java.lang.UnsatisfiedLinkError中出现异常:找不到指定的模块

在com.sun.jna.Native.open(本机方法)
在com.sun.jna.Native.open(Native.java:1759)
在com.sun.jna.nativellibrary.loadLibrary(nativellibrary.java:260)上
位于com.sun.jna.nativellibrary.getInstance(nativellibrary.java:398)
在com.sun.jna.Library$Handler.(Library.java:147)
位于com.sun.jna.Native.loadLibrary(Native.java:412)
位于com.sun.jna.Native.loadLibrary(Native.java:391)
位于net.sourceforge.tess4j.util.LoadLibs.getTessAPIInstance(LoadLibs.java:79)
位于net.sourceforge.tess4j.TessAPI.(TessAPI.java:40)
位于net.sourceforge.tess4j.Tesseract.init(Tesseract.java:360)
位于net.sourceforge.tess4j.Tesseract.doOCR(Tesseract.java:273)
位于net.sourceforge.tess4j.Tesseract.doOCR(Tesseract.java:205)
位于net.sourceforge.tess4j.Tesseract.doOCR(Tesseract.java:189)
位于net.sourceforge.tess4j.Main.Main(Main.java:12)

我犯了什么明显的错误

我使用了

我添加了一个VM参数,如
jna.library.path=${pathtodll2}
,如果使用该参数,则会出现以下错误

我使用的是Test4J项目的最新版本, 版本2.0(2015年3月29日)

  • 升级至Tesseract 3.03(r1050),该版本与Linux上的Tesseract 3.03RC兼容
  • 重构Tesseract类以实现可扩展性和线程安全性
  • 更新Tesseract 3.02的英语数据
我在Windows7,32位机器上运行它。爪哇7


当我尝试使用process Explorer时,我无法看到DLL正在加载,但我不确定,因为异常立即被抛出。

我通过更新到解决了此问题

是您需要在计算机上安装的软件包:)


而且它肯定会工作4….

不满意链接错误的解决方案:

< >安装<强> Visual C++ 2015可重分发包<强>

  • 尝试将tess4j文件夹从本地移动到发生异常的系统


  • 你能发布你的代码吗?确保你的共享库和它的所有依赖库都在同一个目录中,并且该目录位于jna.library.path。什么Tess4J&Tesseract版本和操作系统?已经添加了你们要求的所有信息。它肯定是DLL没有被引用,对吗?但我不知道如何解决这个问题。我甚至尝试将DLL放在System32文件夹中,但仍然没有成功。但是我的错误消息并没有说明任何特定的dll,而是说“找不到指定的模块”。想知道发生了什么。这就是我们所做的-请看这里
    package net.sourceforge.tess4j.example;
    
    import java.io.File;
    import net.sourceforge.tess4j.*;
    
    public class TesseractExample {
    
        public static void main(String[] args) {
            File imageFile = new File("eurotext.tif");
            Tesseract instance = Tesseract.getInstance();  // JNA Interface Mapping
            // Tesseract1 instance = new Tesseract1(); // JNA Direct Mapping
    
            try {
                String result = instance.doOCR(imageFile);
                System.out.println(result);
            } catch (TesseractException e) {
                System.err.println(e.getMessage());
            }
        }}
    
    Error: Could not find or load main class jna.library.path=D:\OCR\Tess4J\lib\win32-x86