[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