我使用的是我自己的JAR文件,它使用Java库(JHDF5),而后者又通过JNI使用动态链接库。当我在MATLAB中使用我自己的JAR文件,然后在调试时不得不重新构建它时,在调用clear java并从我的JAR文件创建一个新对象后,当我再次尝试使用它时,我得到这个错误:
java.lang.UnsatisfiedLinkError:
Native Library C:\deka\proj\java\ESPDF\dist\lib\jhdf5.dll
already loaded in another classloader如果不关闭MATLAB并重新打开它,我就无法解决这个问题,这是一个令人头疼的问题。
这个错误是什么?是谁的错?(我的?MATLAB的?用于不释放DLL或检查是否已加载的JHDF5 )
发布于 2009-08-03 18:41:43
通常,Java代码无法卸载本机dll。http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=5075039
鉴于此,一旦加载了dll,它将在JVM的生命周期内一直存在,并且VM将确保它只加载一次。
为了回答指责的问题,我认为这是代码的错误,它试图加载dll,而不检查它是否已经可用。
https://stackoverflow.com/questions/1223518
复制相似问题