2

我在我的 Eclipse 项目中使用 tess4j.jar。当我在Eclipse上运行它时,我的项目工作正常,但是当我尝试运行导出的可运行 .jar 文件时,它总是由于“java.lang.UnsatisfiedLinkError: Unable to load library 'libtesseract302'”错误而失败。

我试图用类似帖子的解决方案来修复它,但没有任何效果。

  1. 将“libtesseract302”和“liblept168.dll”文件定位到“dll”文件夹中,并将其添加为源文件夹。
  2. 我正在运行 java 32 位并确认 dll 也是 32 位 dll。

错误日志:

Exception in thread "Thread-2" java.lang.UnsatisfiedLinkError: Unable to load library 'libtesseract302': Can't obtain InputStream for win32-x86/libtesseract302.dll
    at com.sun.jna.NativeLibrary.loadLibrary(NativeLibrary.java:271)
    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.TessAPI.<clinit>(Unknown Source)
    at net.sourceforge.tess4j.Tesseract.init(Unknown Source)
    at net.sourceforge.tess4j.Tesseract.doOCR(Unknown Source)
    at net.sourceforge.tess4j.Tesseract.doOCR(Unknown Source)
    at net.sourceforge.tess4j.Tesseract.doOCR(Unknown Source)
    at brain.Main.startOCR(Main.java:292)
    at brain.Main.getOcrResult(Main.java:251)
4

1 回答 1

1

如果 DLL 打包在 JAR 文件中,则需要提取它们。然后将jna.library.path系统属性设置为 DLL 文件的位置(参见教程)。

于 2014-09-15T02:23:30.823 回答