2014-09-14 5 views
2

Я использую tess4j.jar в своем проекте Eclipse. Когда я запустить его на затмение мой проект работает нормально, но когда я пытаюсь запустить исполняемую .jar файл экспортируется всегда удается из-за «java.lang.UnsatisfiedLinkError: Не удалось загрузить библиотеку„libtesseract302“ " ошибка.Tess4j: java.lang.UnsatisfiedLinkError: Не удается загрузить библиотеку

Я попытался исправить это решениями из подобных сообщений, но ничего не получилось.

  1. Расположен файл 'libtesseract302' и 'liblept168.dll' в папке "dll" и добавил его в качестве исходной папки.
  2. Я запускаю java 32bit и подтверждаю, что DLL также являются 32-битными DLL.

Журнал ошибок:

Exception in thread "Thread-2" java.lang.UnsatisfiedLinkError: Unable to load library 'libtesseract302': Can't obtain InputStream for win32-x86/libtesseract302.dll 
    at com.sun.jna.NativeLibrary.loadLibrary(NativeLibrary.java:271) 
    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>(Unknown Source) 
    at net.sourceforge.tess4j.Tesseract.init(Unknown Source) 
    at net.sourceforge.tess4j.Tesseract.doOCR(Unknown Source) 
    at net.sourceforge.tess4j.Tesseract.doOCR(Unknown Source) 
    at net.sourceforge.tess4j.Tesseract.doOCR(Unknown Source) 
    at brain.Main.startOCR(Main.java:292) 
    at brain.Main.getOcrResult(Main.java:251) 
+0

"и добавил его в качестве исходной папки"? –

+0

В корневом каталоге проекта я создал папку с именем dll. Затем я нажал на эту папку: Путь сборки -> Использовать в качестве исходной папки. Чтобы мои библиотеки могли найти нужные DLL. Я не знаю, правильно ли это включить их в мой проект, но я читал, что это может быть решением моей проблемы. Но на самом деле это не исправить. – HelloWorld0815

+0

Итак, вы включаете DLL в свой файл jar. К сожалению, этого недостаточно, поскольку операционная система не может найти собственный код внутри файлов jar. Вы должны иметь их рядом с файлом jar в той же папке. –

ответ

1

Если библиотеки DLL упакованы в файл JAR, они должны быть извлечены. Затем установите системное свойство jna.library.path в расположение файлов DLL (см. Tutorial).