Я пытаюсь связать нативную библиотеку, используя 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 или нет?