【问题标题】:Exception in thread "main" java.lang.UnsatisfiedLinkError: Unable to load library 'libtesseract302': The specified module could not be found线程“主”java.lang.UnsatisfiedLinkError 中的异常:无法加载库“libtesseract302”:找不到指定的模块
【发布时间】:2013-06-26 20:12:07
【问题描述】:

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

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

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

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

【问题讨论】:

  • jna.library.path 应该是路径规范(即目录列表),不是文件路径。

标签: java dll jna


【解决方案1】:

您需要另一个 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中加载)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-01-22
    • 1970-01-01
    • 2014-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多