[Comm] Выгрузка dso в java
Rinat Bikov
=?iso-8859-1?q?bikoz=2Er_=CE=C1_gmail=2Ecom?=
Пн Май 26 08:59:33 MSD 2008
Здравствуйте, уважаемые.
Я понимаю, что обращаюсь немного не по тому адресу, но может кто-нибудь уже
встречался с проблемой выгрузки dll(dso)библиотек из памяти в ява?
Я для загрузки dll использую отдельный класс-поток, который останавливаю
следующим образом:
objects[i].unloadNativeLibs();
objects[i].interrupt();
objects[i] = null;
System.gc();
Где unloadNativeLibs() имеет следующий код:
unloadNativeLibs() throws Throwable {
//System.runFinalization();
ClassLoader classLoader = this.getClass().getClassLoader();
Field field = ClassLoader.class.getDeclaredField("nativeLibraries");
field.setAccessible(true);
Vector libs = (Vector) field.get(classLoader);
for (Object o : libs) {
Method finalize = o.getClass().getDeclaredMethod("finalize", new
Class[0]);
finalize.setAccessible(true);
finalize.invoke(o, new Object[0]);
}
Эта схема работает от силы 1-2 раза (как луна повернётся), после ява-машина
вылетает, понаписав логов в текущей дирректории (этот способ не безопасный).
--
http://mail.google.com
----------- следующая часть -----------
Вложение в формате HTML было удалено...
URL: <http://lists.altlinux.org/pipermail/community/attachments/20080526/100a4694/attachment-0002.html>
Подробная информация о списке рассылки community