3

こんにちは、Java で tess4j ライブラリを使用する際に問題があります。私はmavenを使用しています。

スレッド「メイン」での例外 java.lang.UnsatisfiedLinkError: 指定されたモジュールが見つかりません。

メソッドexistがtrueを返すので、パスに設定されたファイルが存在することは確かです。デバッガーは、この命令で問題を示します。

String result = instance.doOCR(imageFile);

これはエラーです:

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.TessAPI.<clinit>(TessAPI.java:45)
at net.sourceforge.tess4j.Tesseract.init(Tesseract.java:283)
at net.sourceforge.tess4j.Tesseract.doOCR(Tesseract.java:219)
at net.sourceforge.tess4j.Tesseract.doOCR(Tesseract.java:168)
at net.sourceforge.tess4j.Tesseract.doOCR(Tesseract.java:152)
at Index.main(Index.java:17)

私の依存関係

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

私のコード

import java.io.*;
import net.sourceforge.tess4j.*;



public class Index {

public static void main(String[] args) {

File imageFile = new File("C:\\Users\\Juan\\workspace\\TESSERACT\\src\\main\\java\\img.png");
Tesseract instance = Tesseract.getInstance(); //

try {
System.out.println( imageFile.exists());

String result = instance.doOCR(imageFile);
System.out.println(result);

} catch (TesseractException e) {
System.err.println(e.getMessage());
}
}

}

前もって感謝します。

4

3 に答える 3

2

tess4jの最後のバージョン - 3.0 - を追加するだけで十分です

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

代わりに、tess4j に必要だった以前のすべての Maven 依存関係。

于 2016-01-31T11:28:53.813 に答える
1

tess4j で使用されるネイティブ ライブラリが不足しているようです。dll をダウンロードし、java.library.path を適切に設定してプログラムを実行します。

于 2014-08-04T17:02:31.703 に答える