2017-04-25 4 views
0

mavenでTess4Jを使用していますが、すでにpom依存関係が使用されています。すべてが.m2リポジトリにダウンロードされています。ソースフォージからtess4j jnaラッパーもダウンロードしました。しかし、これまで私は、私はまだこの例外を取得mはない:tess4j jna UnsatisfiedLinkError

Looking in classpath from [email protected] for /com/sun/jna/win32-x86-64/jnidispatch.dll 
Found library resource at jar:file:/C:/Users/user/.m2/repository/net/java/dev/jna/jna/4.1.0/jna-4.1.0.jar!/com/sun/jna/win32-x86-64/jnidispatch.dll 
Looking for library 'libtesseract305' 
Adding paths from jna.library.path: C:\Tess4J\lib\win32-x86-64;C:\Tess4J\lib;C:\Users\user\AppData\Local\Temp\tess4j\win32-x86-64 
Trying C:\Tess4J\lib\win32-x86-64\libtesseract305.dll 
Adding system paths: [] 
Trying C:\Tess4J\lib\win32-x86-64\libtesseract305.dll 
Looking for lib- prefix 
Trying liblibtesseract305.dll 
Looking in classpath from [email protected] for libtesseract305 
Found library resource at jar:file:/C:/Users/user/.m2/repository/net/sourceforge/tess4j/tess4j/3.3.1/tess4j-3.3.1.jar!/win32-x86-64/libtesseract305.dll 

Exception in thread "main" java.lang.UnsatisfiedLinkError: Le module spécifié est introuvable. 

at com.sun.jna.Native.open(Native Method) 
at com.sun.jna.Native.open(Native.java:1759) 
at com.sun.jna.NativeLibrary.loadLibrary(NativeLibrary.java:260) 
at com.sun.jna.NativeLibrary.getInstance(NativeLibrary.java:398) 
at com.sun.jna.Library$Handler.<init>(Library.java:147) 
at com.sun.jna.Native.loadLibrary(Native.java:412) 
at com.sun.jna.Native.loadLibrary(Native.java:391) 
at net.sourceforge.tess4j.util.LoadLibs.getTessAPIInstance(LoadLibs.java:75) 
at net.sourceforge.tess4j.TessAPI.<clinit>(TessAPI.java:42) 
at net.sourceforge.tess4j.Tesseract.init(Tesseract.java:367) 
at net.sourceforge.tess4j.Tesseract.doOCR(Tesseract.java:280) 
at net.sourceforge.tess4j.Tesseract.doOCR(Tesseract.java:212) 
at net.sourceforge.tess4j.Tesseract.doOCR(Tesseract.java:196) 
at com.mycompany.mavenproject1.NewClass.main(NewClass.java:20) 

私は私のlibtessract305.dllに-Djna.library.pathを追加しようとしましたが、何の成功

は、私が何をすべきではありませんか?

+1

ため

おかげで「Java仮想マシンは、メソッドの適切なネイティブ言語の定義を見つけることができない場合にスローされ、ネイティブと宣言しました。」 javadocsで判断すると、他の多くのオプションはありません。 jvmを冗長モードで実行して、ネイティブライブラリを探している場所がわかるかどうか確認してください。あなたの最後のセンテンスはあまり意味がありません – efekctive

+2

Javaコマンドラインオプション '-Djna.debug_load = true'を追加すると、JNAがライブラリを探す場所を確認できます。 '-Djna.library.path'がファイルではなく*ディレクトリ*を指していることを確認してください。 – cubrr

+0

@cubrr私の2台のコンピュータにログを追加しました。なぜなら、私のwin10では、asusがうまく動作し、負荷がうまくいったからです。しかし、私の2番目のpc win7はそうではありません。何か考えていますか? –

答えて

0

このソリューションは私のために働いていますが、tesseractまたはtess4jはvs2013ではなくvs2013に依存しています。私がしたのは、Visual C++ 2015再頒布可能パッケージをインストールすることでした。それが正常に動作し、ヘルプ