ocr プロセスを処理するために、tess4J API を使用しています。プロジェクトをWindowsに正常に展開しましたが、そのプロジェクトをLinux ubuntuで実行するのに行き詰まりました。私の調査によると、Linux では .dll ファイルの代わりに .so ファイルを使用する必要があります。私の単純なコードスニペットは最愛のように見えます
import net.sourceforge.tess4j.Tesseract;
import net.sourceforge.tess4j.TesseractException;
import net.sourceforge.tess4j.util.PdfUtilities;
private static Tesseract instance;
try {
System.out.println(getPath());
instance.setDatapath(getPath()+"/tessdata");
result = instance.doOCR(file);
System.out.println(result);
} catch (Exception e) {
logger.log(Level.INFO, e.getMessage(), e);
throw new TesseractException(e);
}
Linux OS用のtessdataフォルダーがあり、それをクラスパスに入れ、いくつかの.soファイルもクラスパスのフォルダーに入れます。eglinux-x86v フォルダー。
私のprintstacktraceは次のとおりです..
java.lang.UnsatisfiedLinkError: /tmp/tess4j.tmp/linux-x86/liblept.so: libjbig.so.0: cannot open shared object file: No such file or directory
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary1(ClassLoader.java:1965)
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1890)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1851)
at java.lang.Runtime.load0(Runtime.java:795)
at java.lang.System.load(System.java:1062)
at net.sourceforge.tess4j.util.LoadLibs.loadLibs(LoadLibs.java:127)
at net.sourceforge.tess4j.util.LoadLibs.<init>(LoadLibs.java:71)
at net.sourceforge.tess4j.util.LoadLibs.<clinit>(LoadLibs.java:38)
at net.sourceforge.tess4j.TessAPI.<clinit>(TessAPI.java:40)
at net.sourceforge.tess4j.Tesseract.init(Tesseract.java:286)
at net.sourceforge.tess4j.Tesseract.doOCR(Tesseract.java:222)
at net.sourceforge.tess4j.Tesseract.doOCR(Tesseract.java:171)
at net.sourceforge.tess4j.Tesseract.doOCR(Tesseract.java:155)
Linuxプラットフォームでtess4j apiを実行する方法と、.soまたは.dllのいずれかでtess4j apiを実行するために必要なファイルの種類に関する解決策を提案してください。その助けをいただければ幸いです。ありがとうございます。