Исключение в потоке "main" java .lang.NoClassDefFoundError: com / sun / jna / Pointer - PullRequest
0 голосов
/ 06 января 2020

Я пытаюсь использовать tess4j в моей программе java. Вот мой код:

`import java.io.File; 
import net.sourceforge.tess4j.Tesseract; 
import net.sourceforge.tess4j.TesseractException; 

class Test { 
    public static void main(String[] args) 
    { 
        Tesseract tesseract = new Tesseract(); 
        try { 

            String text = tesseract.doOCR(new File("captcha.jpg")); 

            System.out.print(text); 
        } 
        catch (TesseractException e) { 
            e.printStackTrace(); 
        } 
    } 
}

Я получаю эти сообщения об ошибках

Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/jna/Pointer
        at Test.main(Detection.java:9)
Caused by: java.lang.ClassNotFoundException: com.sun.jna.Pointer
        at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581)
        at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
        ... 1 more

Моя папка выглядит так:

Основная папка:

  1. Обнаружение. java

  2. lib -> Здесь у меня есть файл "tess4j-3.4.8.jar", который я получил после загрузки tess4j и перехода в папка dist

  3. .captcha.jpg

Я не могу решить эту проблему. Пожалуйста, помогите.

Я использую код Visual Studio в качестве моей IDE.

Ответы [ 2 ]

1 голос
/ 06 января 2020

tess4j имеет следующие переходные зависимости:

enter image description here

Вам нужно будет включить их в свой путь к классам.

PS: Вы должны использовать какой-нибудь инструмент для сборки: maven или gradle

0 голосов
/ 30 апреля 2020

Решение выше YogendraR сработало. Вы должны добавить файлы jar в папку lib вашей папки tess4J в вашем проекте struture Структура проекта => Модуль => Зависимости . Файлы jars для добавления

Добавьте их сюда

...