|
1
|
| Pedro d'Aquino · 技术社区 · 17 年前 |
|
|
1
1
这正是此Bug报告中描述的情况: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=5075039 (报告称它适用于Windows,但实际上是Java问题) 在VM终止之前,Java代码无法卸载本地DLL。一旦加载了一个DLL,它将在JVM的生命周期中一直存在,并且VM将确保它只加载一次。 我能看到的唯一让您的场景工作的方法是,如果您能以某种方式进行版本检查和更新 之前 已加载DLL。一旦它被使用,你就被它卡住了。 |
|
|
2
0
Java类只能通过卸载拥有它们的类加载器来卸载。由于JNI库依赖于所属的类,因此您可能需要卸载拥有该库的类的类加载器。 尝试实例化 URLClassLoader 对于与JNI库接口的类,以及使用反射创建相关类的实例。当您想卸载它时,从一个更新的jar中创建一个新的类加载器,它引用库的新版本(使用不同的库文件名,这样您可以同时加载两个版本,直到gc处理旧版本为止)。 |
|
|
user29759326 · 如何返回递归函数中的最后一个值? 1 年前 |
|
|
malife89 · 将java中的字符串读取为正确的日期格式 1 年前 |
|
|
Tim · 在java中,有没有更快的方法将字节数组写入文件? 1 年前 |
|
|
rudraraj · java中未声明最终变量 1 年前 |
|
|
Bala Ji · 以下BFS的实施效率如何? 1 年前 |