Короткий ответ
Вы должны установить OpenCV (как указано в JavaCV requirements) и 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 требуются два компонента:
- ява библиотека (обычно с расширением
*.jar
), содержащий метод Java, который вызывает нативный библиотека
- Уроженец библиотека (обычно с расширением
*.so
для Linux или *.dll
для окон), что «делать свою работу», в этом случае, что «использовать библиотеку OpenCV»
Первый обеспечивается JavaCV и включены в ваш jar
применения. Второй - системный (Os, архитектура, ...) и должен находиться в пути библиотеки java.
Это фактическая ошибка: он не может найти libjniopencv_core.so
в java.library.path
. Библиотека jniopencv_core
предоставляется JavaCV тоже, но установлена где-то в системе (например, /usr/lib/
) и, таким образом, не включена в окончательный jar
.
Даже если вы найдете способ включить его в окончательное приложение, эта библиотека должна будет использовать библиотеки OpenCV, которые также не установлены в системе. Суммируя потребности:
- JavaCV библиотека Java, что позвонит (с JNI):
- JavaCV родной библиотеки, который будет использовать:
- OpenCV библиотеки, которые будут действительно делать работа.
Без одной из этих приложений приложение не будет работать. Таким образом, OpenCV и JavaCV должны быть установлены в систему.
В моей системе установлен OpenCV. Когда я пытаюсь запустить проект из затмения, все работает отлично. но когда я пытаюсь сделать то же самое из runnabelJar, это не так. Проблема, я нашел, что я не включил DLL-файлы, поэтому как мне это сделать. –
Облицовка одной и той же проблемы.Пожалуйста, помогите – slaveCoder
@ABC http://stackoverflow.com/a/19202226/1847899 –