Краткий ответ
Вы должны установить OpenCV (как указано в требованиях JavaCV) и JavaCV в системе, чтобы использовать JavaCV. Поскольку вы, вероятно, установили их для разработки на своем компьютере, приложение работает, но на другом компьютере они, вероятно, не установлены, и поэтому jar
не работает.
Длинный ответ
Проблема не в библиотеке JavaCV, которая правильно включена в ваш jar
, как показано в строках:
at com.googlecode.javacpp.Loader.loadLibrary(Loader.java:593)
at com.googlecode.javacpp.Loader.load(Loader.java:489)
at com.googlecode.javacpp.Loader.load(Loader.java:431)
at com.googlecode.javacv.cpp.opencv_core.<clinit>(opencv_core.java:136)
Дело в том, что JavaCV построен поверх OpenCV. OpenCV является библиотекой C++, и единственный способ использовать ее из Java — использовать вызовы JNI.
JNI требует двух компонентов:
- Библиотека Java (обычно с расширением
*.jar
), содержащая метод Java, который вызывает собственную библиотеку.
- Собственная библиотека (обычно с расширением
*.so
для Linux или *.dll
для Windows), которая «делает работу», в данном случае «использует библиотеку OpenCV».
Первый предоставляется JavaCV и включается в ваше jar
приложение. Второй зависит от системы (ОС, архитектура,...) и должен быть указан в пути к библиотеке Java.
Это фактическая ошибка: он не может найти libjniopencv_core.so
в java.library.path
. Библиотека jniopencv_core
также предоставляется JavaCV, но она установлена где-то в системе (например, /usr/lib/
) и поэтому не включена в окончательную версию jar
.
Даже если вы найдете способ включить ее в окончательное приложение, эта библиотека должна будет использовать библиотеки OpenCV, которые также не установлены в системе. Резюмируя потребности:
- Java-библиотека JavaCV, которая будет вызывать (с JNI):
- собственная библиотека JavaCV, которая будет использовать:
- Библиотеки OpenCV, которые действительно сделают работу.
Без одного из этих пунктов приложение работать не будет. Таким образом, OpenCV и JavaCV должны быть установлены в системе.
person
StreakyCobra
schedule
30.04.2013