Динамическая загрузка (перезагрузка?) классов

Модератор: Absurd

Ответить
mm
Сообщения: 34
Зарегистрирован: 19 фев 2004, 10:36
Контактная информация:

Интересует вот что.

Есть программа серверного типа, на Java. Работает себе потихонечку, ждет соединений по сокету. После соединения - обрабатывает это самое соединение (принимает запрос, отсылает ответ).
Но вот в какой то момент времени, скажем в 12-00, захотелось человеку подправить кусочек кода (маааленький такой), относящийся к обработке соединения. Что из этого получается. Новые классы естественно компилируются, НО. Программа то работает дальше, и пока ее не перезапустить, изменения в силу не вступят. А хочется сделать так, чтобы серверную прогу перезапускать не приходилось, т.е. скопировал новые классы, сделал еще что то (вопрос что - открытый), и оПа - все работае с новыми классами.
Аватара пользователя
AiK
Сообщения: 2287
Зарегистрирован: 13 фев 2004, 18:14
Откуда: СПб
Контактная информация:

mm, Classloader не подойдёт?
Даже самый дурацкий замысел можно воплотить мастерски
mm
Сообщения: 34
Зарегистрирован: 19 фев 2004, 10:36
Контактная информация:

Class.forName что ли?
Аватара пользователя
AiK
Сообщения: 2287
Зарегистрирован: 13 фев 2004, 18:14
Откуда: СПб
Контактная информация:

mm, да нет, java.lang.ClassLoader.
Даже самый дурацкий замысел можно воплотить мастерски
mm
Сообщения: 34
Зарегистрирован: 19 фев 2004, 10:36
Контактная информация:

Что-то в документации мутно написано...
нифига не понятно.
Если я делаю

ClassLoader.loadClass(className);

то:
1) если этот класс уже загружался, то ничего не происходит
2) иначе ищется класс с таким именем и загружается?

Это верно?
Bas
Сообщения: 21
Зарегистрирован: 10 мар 2004, 21:46

mm писал(а):...
и оПа - все работает с новыми классами.
Надо бы тебе переопределить ClassLoader - написать свой, который следил бы отдельной ниткой за изменениями классов, и в нужный момент этот класс перегружал бы... Но перегрузка связана со многими проблемами, основная из которых - следить за уже загруженными объектами данного класса.

некоторые мысли по этому поводу...

и еще одна ссылка (скачать исходники можно с sourceforge.net)
mm
Сообщения: 34
Зарегистрирован: 19 фев 2004, 10:36
Контактная информация:

Спасибо за ссылки. Насколько я понял, это непросто.
Буду разбираться.
mm
Сообщения: 34
Зарегистрирован: 19 фев 2004, 10:36
Контактная информация:

Еще я тут подумал. Вот написал я свой ClassLoader который каким то образом перезагружает нужные классы.
А потом мне захотелось перезагрузить ClassLoader )))). Причем никто это делать не запрещает, то есть такое тоже можно провернуть...

Я офигеваю от Java...
Ответить