Tess4j:java.lang.UnsatisfiedLinkError:无法加载库

时间:2014-09-14 19:36:42

标签: eclipse dll tesseract unsatisfiedlinkerror tess4j

我在Eclipse项目中使用tess4j.jar。当我在 eclipse上运行时,我的项目正常工作,但是当我尝试运行导出的 runnable .jar文件时,它总是会因为“java.lang.UnsatisfiedLinkError:无法加载库'libtesseract302'”错误。

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

  1. 将“libtesseract302”和“liblept168.dll”文件放入“dll”文件夹,并将其添加为源文件夹。
  2. 我正在运行java 32bit并确认dll也是32位dll。
  3. 错误日志:

    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)
    

1 个答案:

答案 0 :(得分:1)

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