2012-09-08 127 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'將不起作用,因爲它由於某種原因未被識別。 –