![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
Maksym |
|
|||
![]() . ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1456 Регистрация: 19.8.2005 Где: Odessa, Black Sea Репутация: 14 Всего: 62 |
Написал свой простенький ClassLoader, который загружает и инстанциирует классы из некого хранилища.
У полученных экземпляров дергаю разные методы. Хочу чтобы или ClassLoader или код, который дергает методы, контролировали не пытается ли загруженный класс использовать функциональнось запрещенных пакетов (например, я хочу запретить свежезагруженным классам юзать java.util.*). Желательно выяснить это на этапе загрузки, но можно и on demand. При попытке использовать несанкционированный пакет, класс, метод -- выбросить исключение. Такое поведение должно быть реализовано не только для самого класса, но и для всех используемых им. Короче, надо построить песочницу и реализовать то, что делает загрузчик для аплетов при попытке апплета записать файл в корень диска C ![]() Вопрос срочный, совершенно нет времени конкретно вникать в тему, поэтому прошу у комьюнити ургентной помощи ![]() ![]() ![]() |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Попробуй так: создаешь свой класс лоадер
определяешь его как context ClassLoader и грузишь им нужные классы. По идее ресолвить классы они будут через него. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
Maksym |
|
|||
![]() . ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1456 Регистрация: 19.8.2005 Где: Odessa, Black Sea Репутация: 14 Всего: 62 |
LSD
Супер! Сделал и заработало. Но я закомментировал protected synchronized Class<?> loadClass(String name, boolean resolve) throws ClassNotFoundException protected Class<?> findClass(String name) throws ClassNotFoundException, а реализовал только место //try to load class your self. Думаю, ты предложил мне реализовать эти два метода не просто так... В чем фишка, зачем нужно переопределять их? |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Т.е. findClass(String) должен делать основную работу по загрузке классов. А в loadClass(String) надо его только вызывать. Насчет метода loadClass(String, boolean) умолчальная реализация ClassLoader-а именно его и вызывает. Так что можно было переопределить, только этот метод. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
Maksym |
|
|||
![]() . ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1456 Регистрация: 19.8.2005 Где: Odessa, Black Sea Репутация: 14 Всего: 62 |
Спасибо, LSD, выручил не в первый раз. Вопрос решен
![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |