2

2 日間のグーグル検索の後、Tess4j バージョン 3.0 に関する問題の解決策をまだ見つけることができません: java.lang.UnsatisfiedLinkError: 指定されたモジュールが見つかりませんでした。

Windows 10 x64 でサーバー側の Spring ブート アプリを作成しています。私はこのチュートリアルを使用しましたhttp://tess4j.sourceforge.net/tutorial/ant testはtess4jプロジェクトのソースで作成し、このコマンドは私のPCで正常に動作します。また、VS2012 用の Visual C++ 再頒布可能パッケージと VS2013 用の Visual C++ 再頒布可能パッケージもインストールされています。しかし、PC に dll がありません。libtesseract304.dll は以下に依存しています:

それが問題の原因になる可能性はありますか?しかし、Tess4J-3.0-src プロジェクトが私の PC で正常に動作する可能性はありますか?

私の完全なスタックトレース:

java.lang.UnsatisfiedLinkError: The specified module could not be found.

    at com.sun.jna.Native.open(Native Method) ~[jna.jar:4.2.1 (b0)]
    at com.sun.jna.NativeLibrary.loadLibrary(NativeLibrary.java:263) ~[jna.jar:4.2.1 (b0)]
    at com.sun.jna.NativeLibrary.getInstance(NativeLibrary.java:403) ~[jna.jar:4.2.1 (b0)]
    at com.sun.jna.Library$Handler.<init>(Library.java:147) ~[jna.jar:4.2.1 (b0)]
    at com.sun.jna.Native.loadLibrary(Native.java:502) ~[jna.jar:4.2.1 (b0)]
    at com.sun.jna.Native.loadLibrary(Native.java:481) ~[jna.jar:4.2.1 (b0)]
    at net.sourceforge.tess4j.util.LoadLibs.getTessAPIInstance(Unknown Source) ~[tess4j-3.0.jar:na]
    at net.sourceforge.tess4j.TessAPI.<clinit>(Unknown Source) ~[tess4j-3.0.jar:na]
    at net.sourceforge.tess4j.Tesseract.init(Unknown Source) ~[tess4j-3.0.jar:na]
    at net.sourceforge.tess4j.Tesseract.doOCR(Unknown Source) ~[tess4j-3.0.jar:na]
    at net.sourceforge.tess4j.Tesseract.doOCR(Unknown Source) ~[tess4j-3.0.jar:na]
    at net.sourceforge.tess4j.Tesseract.doOCR(Unknown Source) ~[tess4j-3.0.jar:na]
    at ocr.OCRController.handleFileUpload(OCRController.java:109) ~[classes/:na]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_51]
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_51]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_51]
    at java.lang.reflect.Method.invoke(Method.java:497) ~[na:1.8.0_51]

私のコード:

ITesseract instance = new Tesseract(); // JNA Interface Mapping

instance.setDatapath(new File(datapath).getPath()); 
instance.setLanguage("eng");      
try {
    String result = instance.doOCR(imageFile); //error here
} catch (TesseractException e) {
    System.err.println(e.getMessage());
}

メイヴン:

<dependency>
    <groupId>jai_imageio</groupId>
    <artifactId>com.jai_imageio</artifactId>
    <version>3.0</version>
    <scope>system</scope>
    <systemPath>${project.basedir}/lib/jai_imageio.jar</systemPath>
</dependency>
<dependency>
    <groupId>commons-io-2.4</groupId>
    <artifactId>com.commons-io-2.4</artifactId>
    <version>3.0</version>
    <scope>system</scope>
    <systemPath>${project.basedir}/lib/commons-io-2.4.jar</systemPath>
</dependency>
<dependency>
    <groupId>jna</groupId>
    <artifactId>com.jna</artifactId>
    <version>3.0</version>
    <scope>system</scope>
    <systemPath>${project.basedir}/lib/jna.jar</systemPath>
</dependency>
<dependency>
    <groupId>tess4j-3.0</groupId>
    <artifactId>com.tess4j-3.0</artifactId>
    <version>3.0</version>
    <scope>system</scope>
    <systemPath>${project.basedir}/lib/tess4j-3.0.jar</systemPath>
</dependency>

また、ライブラリを強制的にロードしようとしました:

Runtime.getRuntime().loadLibrary("lib/win32-x86-64/gsdll64");
Runtime.getRuntime().loadLibrary("lib/win32-x86-64/libtesseract304");

しかし、成功せずに:

There was an unexpected error (type=Internal Server Error, status=500).
C:\Users\Iuliia\IdeaProjects\ENumbersBackend\lib\win32-x86-64\libtesseract304.dll: Can't find dependent libraries

助けてくれてありがとう!

4

2 に答える 2

1

問題は Windows 10 とは関係ありません。

私はすでに追加でエラーを修正しました

<dependency>
    <groupId>net.sourceforge.tess4j</groupId>
    <artifactId>tess4j</artifactId>
    <version>3.0.0</version>
</dependency>

代わりに、以前のすべての Maven 依存関係。

于 2016-01-29T21:53:50.367 に答える