Как вызвать нативную библиотеку SO во время пакета с maven?

Я разработал проект со свингом, maven с некоторыми нативными библиотеками. Теперь у меня проблема с вызовом SO из java после создания jar из пакета maven. Я включил это в POM.xml. И он включил этот файл внутри jar. Но он не свяжет оба.

У меня возникла ошибка при выполнении jar, например «Исключение в потоке «main» java.lang.UnsatisfiedLinkError: нет проектов в java.library.path»

 <resources>
	      <resource>
	        <filtering>false</filtering>
	        <directory>${project.basedir}/lib</directory>
	        <includes>
	          <include>my.so</include>
	          <include>cv2.so</include>
	        </includes>
	      </resource>
	  </resources> 

А также хотите добавить папку библиотеки и экспортировать ее в банку. Есть ли способ это сделать?


person praveenkumar s    schedule 08.11.2017    source источник


Ответы (1)


Ваш собственный путь к библиотеке неверен для запуска вашей программы. см. Вызов функции c из Java

используйте -Djava.library.path=/path/to/libs для установки пути перед выполнением программы.

используйте System.loadLibrary("HelloWorld") для установки пути во время выполнения

пожалуйста, взгляните на ссылку, которую я публикую еще раз.

person xxy    schedule 09.11.2017
comment
Яа, я сделал это в своем коде. Тем не менее я получаю ту же ошибку после создания jar - person praveenkumar s; 09.11.2017
comment
@praveenkumars напечатайте java.library.path в своем журнале, чтобы убедиться, что он правильный - person xxy; 09.11.2017
comment
перед сборкой jar я получаю правильный путь, после сборки jar я получаю путь jdk lib. Как это решить? /home/hubino/torch/install/lib:/home/hubino/torch/install/lib::/usr/local/cuda-8.0/lib64:/home/hubino/Documents/software/cudnn/cudnn_5.1/lib64 :/home/hubino/Видео/lib:/usr/java/packages/lib/amd64:/usr/lib/x86_64-linux-gnu/jni:/lib/x86_64-linux-gnu:/usr/lib/x86_64- Linux-gnu:/usr/lib/jni:/lib:/usr/lib - person praveenkumar s; 09.11.2017
comment
У вас есть идея изменить этот путь к библиотеке в банке? - person praveenkumar s; 09.11.2017