java.lang.UnsatisfiedLinkError:本地库{____.dll}已经加载到另一个类加载器中

Jas*_*n S 3 java dll java-native-interface matlab shared-libraries

我正在使用我自己的JAR文件,它使用Java库(JHDF5),而后者又通过JNI使用dll.当我在MATLAB中使用我自己的JAR文件,然后在调试时必须重建它时,在我clear java从JAR文件调用并创建一个新对象之后,当我再次尝试使用它时出现此错误:

java.lang.UnsatisfiedLinkError: 
Native Library C:\deka\proj\java\ESPDF\dist\lib\jhdf5.dll 
already loaded in another classloader
Run Code Online (Sandbox Code Playgroud)

如果不关闭MATLAB并重新打开,我无法解决这个问题,这是一个痛苦的问题.

这个错误是什么,它的错是什么?(我的?MATLAB的?JHDF5没有释放DLL或检查它是否已经加载)

gib*_*bss 5

通常,Java代码无法卸载本机dll. http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=5075039

鉴于此,一旦加载了dll,它就会存在于JVM的生命周期中,并且VM将确保它只加载一次且只加载一次.

为了回答责备问题,我想这是代码的错误,它试图加载dll而不检查它是否已经可用.