кот не может найти внешний jar - java.lang.NoClassDefFoundError: org / opencv / core / Core - PullRequest
0 голосов
/ 29 декабря 2018

Я пытаюсь настроить openCV для API Spring Spring, работающего на сервере TOMCAT 8.5.

Я попробовал несколько вещей, прежде чем задать вопрос:

  • Я добавилopencv в buildpath
  • Я добавил библиотеку opencv в src / WEB-INF / lib моего java-проекта (который я должен был создать сам)
  • Я пытался использоватьрепозиторий maven: OpenPnp

    org.openpnp opencv 3.2.0-0

Мой тестовый код следующий: @RestController открытый класс OpencvController {

    @GetMapping("/opencv")
    public  String opencv() {
        System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
        Mat mat = Mat.eye(3, 3, CvType.CV_8UC1);
        System.out.println("mat = " + mat.dump());
        return null;
    }

}

Но я продолжаю получать сообщение об ошибке: «java.lang.NoClassDefFoundError: org / opencv / core / Core», и я больше не имею понятия, как ее решить, любая помощь будет очень признательна.Заранее спасибо

Ответы [ 2 ]

0 голосов
/ 29 декабря 2018

Так что я наконец разобрался.Вместо того, чтобы загружать банку и пытаться вставить ее в свой проект maven, я просто добавил неофициальный архетип maven в свой POM:

<!-- https://mvnrepository.com/artifact/org.openpnp/opencv -->
<dependency>
    <groupId>org.openpnp</groupId>
    <artifactId>opencv</artifactId>
    <version>3.2.0-0</version>
</dependency>

И затем я просто изменил свой код с:

System.loadLibrary(Core.NATIVE_LIBRARY_NAME);

до

nu.pattern.OpenCV.loadShared();

Как предлагается здесь: Java OpenCV от Maven И это сработало!Спасибо, ребята, за вашу помощь

0 голосов
/ 29 декабря 2018

Это типичная проблема в затмении.Я сталкивался с этой проблемой несколько раз и не смог найти верного решения этой проблемы.

Сначала создайте WAR-файл вашего проекта и проверьте, можете ли вы найти opencv.jar в вашей WAR-файле.НЕ проверяйте это при развертывании Tomcat. Создайте свою войну, используя maven install.

Если вы не найдете opencv, jar в созданной вами войне, то снова проверьте POM или попробуйте добавить внешний jar.Но если вы найдете opencv.jar в вашей Созданной WAR, попробуйте выполнить следующие действия:

Вот что мне помогало в разных случаях:

  1. maven обновите ваш проект
  2. Очистить проекты (Убедитесь, что вы включили автоматическую сборку)
  3. Закройте проект в рабочем пространстве и снова откройте его (я знаю, это звучит глупо, но у меня получилось)
  4. Создатьwar вашего проекта, затем замените файлы .class в развернутой war в вашем автономном каталоге Tomcat на сгенерированные файлы war .class.Затем перезапустите сервер tomcat с помощью eclipse.

Для пунктов 1-3 убедитесь, что вы очищаете развертывания в каталоге tomcat

. Надеюсь, любое из перечисленных выше решений подойдет вама также.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...