#java #centos #javacv
Есть приложение которое пишет видео с rtsp потока. Проект собираю с помощью gradle.
На локальной машине (там стоит kubuntu) все работает хорошо и верно. Как я отправляю
свой .war на сервер(там стоит CentOS), то получаю такую вот ошибку
java.lang.ClassNotFoundException: org.bytedeco.javacpp.avutil$AVFrame.
И на локальной и на удаленной машине стоит Tomcat. Пробовал собирать проект на другой
машине с kubuntu и там тоже все работает без ошибок. В чем беда?
UDP:
Ошибка java.lang.NoClassDefFoundError
Так добавляю в gradle все зависимости.
И дерево с библиотеками
Проверил какие библиотеки попадают в war. действительно класса org.bytedeco.javacpp.avutil
там нет.
Что я делаю не так? На двух машинах с kubuntu это работает.
UPDATE
Как я понял для CentOS надо самому собрать библиотеку. Делаю все по инструкции
Building JavaCV on CentOS 6.5
Но на шаге 9 получаю ошибку
Build the opencv profile only, and install into local maven cache
mvn install --projects opencv
UPDATE 2
Связался с разработчиком библиотеки. Он говорит что эта старая инструкция создания
библиотеки и предложил новую.
Инструкция
Но получаю ошибку на шаге
$ wget https://linuxsoft.cern.ch/cern/devtoolset/slc6-devtoolset.repo
$ rpm --import https://linuxsoft.cern.ch/cern/slc6X/x86_64/RPM-GPG-KEY-cern
Ответы
Ответ 1
java.lang.ClassNotFoundException всегда значит одно и то же: виртуальная машина не смогла найти класс, вызываемый по строковому представлению его полного имени. В данном случае Java не может найти в CLASSPATH класс org.bytedeco.javacpp.avutil$AVFrame. Убедитесь, что соответствующая библиотека (вероятно это JavaCPP Presets, от которой зависит JavaCV) попала в сборку.Ответ 2
вроде для работы с javacv надо: 1) добавлять библиотеку OpenCV в ОС 2) добавить зависимость на JavaCV в мавен. JavaCV работает как обёртка для основной библиотеки OpenCV
Комментариев нет:
Отправить комментарий