线程“main”中的异常java.lang.UnsatisfiedLinkError:无法加载库'libtesseract302':找不到指定的模块

时间:2013-06-26 20:12:08

标签: java dll jna

我正在运行Eclipse,我知道这是一个常见的问题(尝试做一些JNA),但我在网上发现的所有修复都不起作用:

  • 该库是32位,但是当我执行sun.arch.data.model的getProperty时它是32,所以这不是问题。
  • 我已经尝试将我的dll放在sclipse文件夹中,在我的eclipse项目的根目录中,但没有任何作用。
  • 我尝试过做System.setProperty(“jna.library.path”,“c:/libtesseract302.dll”);然后将我的dll放在那里,但那不起作用。

以下是我用来尝试包含本机库的代码:

public static final TessAPI INSTANCE = (TessAPI) Native.loadLibrary("libtesseract302", TessAPI.class);

1 个答案:

答案 0 :(得分:7)

你需要另一个dll,它是一个libtesseract302依赖:“liblept168.dll” (可以在这里找到:http://code.google.com/p/tesseract-ocr/source/browse/trunk/vs2008/lib/liblept168.dll?r=553

尝试这样的事情:

将两个dll文件放在同一个文件夹中(比如说tesseractlib)

在代码中

,在加载模块之前,添加:

System.setProperty("jna.library.path", "tesseractlib");

(顺便说一下,你也需要使用一个32位的jvm,这两个dll都是32位而不是64位的库,并且无法加载到64位的jvm中)