НЕТ opencv_java300 в java.library.path

Заранее спасибо..

У меня есть проект, который использует opencv-300.jar в качестве внешней библиотеки. Я пробовал это в затмении и в natBeans. В обоих случаях он работает успешно, когда я запускаю свой проект из самой IDE. Я хочу, чтобы мой проект экспортировал его как исполняемый (или исполняемый) фляга. Я поместил свой файл opencv_java300.dll в исходную папку с основным файлом Java и дал его имя в

 System.loadLibrary("opencv_java300");

Я поместил opencv-300.jar во внешние библиотеки jar и все остальные файлы, которые нужны в основной программе. он работает успешно при запуске из IDE, но когда я создаю исполняемый файл JAR, он показывает ошибку

   Exception in thread "main" java.lang.UnsatisfiedLinkError: no     
   opencv_java300 in
   java.library.path
   at java.lang.ClassLoader.loadLibrary(Unknown Source)
   at java.lang.Runtime.loadLibrary0(Unknown Source)
   at java.lang.System.loadLibrary(Unknown Source)
   at CropFaceImage.main(CropFaceImage.java:27)

Пожалуйста, скажите мне, есть ли способ дать java.library.path в самой программе. Мой проект успешно работает, даже если я удалил путь к файлу opencv_java300.dll во внешней библиотеке.

5 ответов

Я попытался передать команду, которая содержит путь для opencv, но я не нашел другого пути. Каким-то образом я попробовал кое-что, что создало мою флягу, и это должным образом работает. Я скопировал файл opencv_java300.dll и поместил его в каталог, который находится рядом с моим файлом jar, и сделал то же самое для всех вспомогательных файлов. Я использовал следующий код, чтобы сделать это.

String opencvpath = System.getProperty("user.dir") + "\\files\\";
String libPath = System.getProperty("java.library.path");
System.load(opencvpath + Core.NATIVE_LIBRARY_NAME + ".dll");

Вы можете использовать аргумент командной строки, как показано ниже, и вызвать свой класс, который имеет основной

java -Djava.library.path="Folder which contains your dll" ....

У меня была та же проблема, я решил ее, переключив системную библиотеку JRE. Кажется, что проблема возникает только при использовании jre1.8.0_65. У меня все хорошо работало с jre1.8.0_25, jre1.8.0.45 и jre1.8.0.66

Я решил свою проблему, когда настроил собственную библиотеку в Eclipse. Вам нужно выбрать библиотеку со ссылкой на вашу платформу ОС.

Посмотрите здесь: добавление openCV в путь сборки Java в Eclipse.

Я смог исправить ошибку, удалив System.loadLibrary("opencv_java300"); Из кода и добавления файла jar в путь к классам в моем build.xml:

<jar destfile="program.jar" basedir="build/classes">
    <manifest>
        <attribute name="Main-Class" value="com.src.program"/>
        <attribute name="Class-path" value="opencv-300.jar"/>
    </manifest>
</jar>
Другие вопросы по тегам