2015-04-06 2 views
3

Я пытаюсь использовать оболочку Ja ЮНЫ для Tesseract OCR API, но я получаю исключение java.lang.UnsatisfiedLinkErrorjava.lang.UnsatisfiedLinkError исключения при использовании Тессеракта API в Java

Я скачал последнюю версию с http://sourceforge.net/projects/tess4j/

Я убедился, что использую 32-битную JVM. Ниже приводится след исключения.

Exception in thread "main" java.lang.UnsatisfiedLinkError: The specified module could not be found. 

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:79) 
at net.sourceforge.tess4j.TessAPI.<clinit>(TessAPI.java:40) 
at net.sourceforge.tess4j.Tesseract.init(Tesseract.java:360) 
at net.sourceforge.tess4j.Tesseract.doOCR(Tesseract.java:273) 
at net.sourceforge.tess4j.Tesseract.doOCR(Tesseract.java:205) 
at net.sourceforge.tess4j.Tesseract.doOCR(Tesseract.java:189) 
at net.sourceforge.tess4j.Main.main(Main.java:12) 

Какие-либо очевидные ошибки, которые я совершаю?

Я использовал пример кода из http://tess4j.sourceforge.net/codesample.html

пакета net.sourceforge.tess4j.example;

импорт java.io.File; импорт net.sourceforge.tess4j. *;

общественного класса TesseractExample {

public static void main(String[] args) { 
    File imageFile = new File("eurotext.tif"); 
    Tesseract instance = Tesseract.getInstance(); // JNA Interface Mapping 
    // Tesseract1 instance = new Tesseract1(); // JNA Direct Mapping 

    try { 
     String result = instance.doOCR(imageFile); 
     System.out.println(result); 
    } catch (TesseractException e) { 
     System.err.println(e.getMessage()); 
    } 
}} 

Я добавил аргумент VM, такие как jna.library.path = $ {pathtodll2} и получить ошибку ниже, если я использую аргумент,

Error: Could not find or load main class jna.library.path=D:\OCR\Tess4J\lib\win32-x86 

Я использую последнюю версию проекта Test4J, Версия 2.0 (29 марта 2015 г.) - Переход на Tesseract 3.03 (r1050), совместимый с Tesseract 3.03RC на Linux - Рефактор Tesseract для extensibili ty и безопасность потока - Обновить данные на английском языке для Tesseract 3.02

Я запускаю его на Windows 7, 32-разрядной машине. Java 7.

Когда я пытаюсь использовать проводник процессов, я не могу видеть, как DLL загружается, но я не уверен, так как исключение сразу же отбрасывается.

+0

Вы можете оставить свой код? – Prashant

+0

Убедитесь, что ваша общая библиотека и все ее зависимые библиотеки находятся в одном каталоге и этот каталог находится на 'jna.library.path'. – technomage

+0

Какие версии TOS4J и Tesseract и ОС? – nguyenq

ответ

0

Решение UnsatisfiedLinkError:

  1. установить Visual C++ 2015 распространяемых пакетов.

  2. попытаться переместить tess4j папка из вашей локальной системы в систему, где произошло исключение.

Смежные вопросы