Не удается загрузить собственную библиотеку при запуске приложения в виде JAR - PullRequest
0 голосов
/ 01 апреля 2019

Я пытаюсь связать нативную библиотеку, используя JNI, с моим Java-приложением.Когда я запускаю приложение через intelliJ, оно может правильно загрузить библиотеку, но когда я запускаю ее через Jar-файл, оно не может ничего загрузить.

Я получаю это исключение

java.lang.IllegalArgumentException: name
at sun.misc.URLClassPath$Loader.findResource(URLClassPath.java:703)
at sun.misc.URLClassPath.findResource(URLClassPath.java:225)
at java.net.URLClassLoader$2.run(URLClassLoader.java:572)
at java.net.URLClassLoader$2.run(URLClassLoader.java:570)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findResource(URLClassLoader.java:569)
at org.springframework.boot.loader.LaunchedURLClassLoader.findResource(LaunchedURLClassLoader.java:57)
at java.lang.ClassLoader.getResource(ClassLoader.java:1096)
at com.jniwrapper.DefaultLibraryLoader.findLibrary(SourceFile:181)
at com.jniwrapper.Library.load(SourceFile:127)

, который я не совсем понимаю.

Код, который я пытаюсь выполнить:

Library  nativeLibrary = new Library(dll.path());
nativeLibrary.getFunction("getVersion");

Я подтвердил, что DLL находится в пути Java.И jar, и ide пытаются загрузить одну и ту же dll в одном и том же месте, но jar никогда не сможет.

Есть ли существенная разница между запуском приложения с использованием Jar или нет?

...