无法使用System.load(path)加载.dll;

时间:2012-09-08 20:30:24

标签: java dll

我使用AspriseOCR制作了一个Java OCR程序。 它需要一个名为AspriseOCR.dll的.dll,我将dll复制到C:/ Windows / System32 / 但是当我使用

System.load("C:/Windows/System32/AspriseOCR.dll");  

我仍然得到一个UnsatisfiedLinkError。

我花了最近两天的时间来寻找解决问题的方法,但我找不到任何有效的方法。


好的大家,现在有效。事实证明我还必须制作一个32位版本! 如果有人从Asprise那里需要OCR引擎的帮助,那么下午我会尽力帮助你!

1 个答案:

答案 0 :(得分:4)

要加载DLL等库,您应该使用

    System.loadLibrary("libname");

"libname"是库的名称。您不包括存储文件的扩展名,也不包括文件的完整路径。对于您的情况,您可能会致电

    System.loadLibrary("AspriseOCR");

加载您正在使用的库。

因为loadLibrary为参数而不是文件获取库名,所以在放置.dll的位置必须小心。通常,您可以将其包含在应用程序的工作目录中,或者包含在System32等本机文件夹中。如果您必须将其放在其他位置,请务必正确设置java.libary.path。例如,如果.dll位于文件夹“libraries”中,则应使用参数

启动java
    -Djava.library.path=libraries