在将应用程序作为JAR运行时,本机库无法加载

时间:2019-04-01 15:56:13

标签: java spring spring-mvc jar java-native-interface

我正在尝试使用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运行应用程序之间是否有重大区别?

0 个答案:

没有答案