Здравствуйте, уважаемые. <br>Я понимаю, что обращаюсь немного не по тому адресу, но может кто-нибудь уже встречался с проблемой выгрузки dll(dso)библиотек из памяти в ява?<br>Я для загрузки dll использую отдельный класс-поток, который останавливаю следующим образом:<br>
<br>objects[i].unloadNativeLibs();<br>objects[i].interrupt();<br>objects[i] = null;<br>System.gc();<br><br>Где unloadNativeLibs() имеет следующий код:<br clear="all"> unloadNativeLibs() throws Throwable {<br> //System.runFinalization();<br>
ClassLoader classLoader = this.getClass().getClassLoader();<br> Field field = ClassLoader.class.getDeclaredField("nativeLibraries");<br> field.setAccessible(true);<br> Vector libs = (Vector) field.get(classLoader);<br>
for (Object o : libs) {<br> Method finalize = o.getClass().getDeclaredMethod("finalize", new Class[0]);<br> finalize.setAccessible(true);<br> finalize.invoke(o, new Object[0]);<br>
}<br><br>Эта схема работает от силы 1-2 раза (как луна повернётся), после ява-машина вылетает, понаписав логов в текущей дирректории (этот способ не безопасный).<br>-- <br><a href="http://mail.google.com">http://mail.google.com</a>