我用我自己的一个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

和我不能无需关闭MATLAB和重新打开,这是在颈部疼痛解决它。

这是什么错误,是谁的错呢? (我的吗?MATLAB的?JHDF5不释放该DLL或检查,看看是否它已经加载)

有帮助吗?

解决方案

在一般情况下,没有办法对Java代码来卸载机DLL。 http://bugs.sun.com/bugdatabase/view_bug.do?bug_id= 5075039个

鉴于此,一旦DLL被加载,它的存在对于JVM和VM的寿命将确保它被加载一次且仅一次。

要回答的怪问题,我想这是试图加载DLL,如果没有它已经可以检查代码的错误。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top