2012-09-08 123 views
1

我使用AspriseOCR制作了一个Java OCR程序。 它需要一个叫做AspriseOCR.dll .dll文件,我复制的DLL到C:/在Windows/System32下/ 但是当我使用无法使用System.load加载.dll(路径);

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

我仍然获得了UnsatisfiedLinkError。

我已经花了最近2天搜索我的问题的解决方案,但我找不到任何工作。


好吧大家,它现在的作品。原来我也不得不做一个32位版本! 如果有人需要Asprise的OCR引擎帮助,下午和我会尽力帮助你!

+1

尝试复制'AspriseOCR.dll'工作目录,并使用'调用LoadLibrary(“AspriseOCR”)'代替。 – oldrinb

+1

@oldrinb,我不知道为什么......但是你的提示让我做到了。我刚刚从Eclipse中创建了一个可运行的jar,将该jar放入一个带有.dll的目录中,然后创建了一个可以执行此操作的程序:java -Xmx1024m -jar OCR.jar现在可以运行了! –

+0

很高兴它解决了:-) – oldrinb

回答

4

加载库,如DLL,你应该使用

System.loadLibrary("libname"); 

哪里"libname"名库的。您不包括存储文件的扩展名或文件的完整路径。对于你的情况,你可能会打电话给

System.loadLibrary("AspriseOCR"); 

加载您正在使用的库。

因为loadLibrary需要一个参数库而不是文件的名称,所以您必须注意放置.dll的位置。通常情况下,您可以将其包含在应用程序的工作目录中,或者包含在System32等本机文件夹中。如果你必须把它放在别的地方,一定要适当地设置java.libary.path。例如,如果.dll文件所在的文件夹“库”,你应该启动Java的说法

-Djava.library.path=libraries 
+0

' -Djava.library.path = libraries'将不起作用,因为它由于某种原因未被识别。 –