2011-12-27 2 views
0

Могу ли я изменить загрузчик контекстного класса потока, в то время как поток работает, например. настройка контекста внутри функции run()?Изменение класса ClassLoader во время работы

Я искал через Google ответ, но ничего не нашел.

+3

Зачем вам это нужно? Какую программную функцию вы пытаетесь предложить, «меняя класс-загрузчики»? –

+0

На самом деле, я не знаю. Я видел его в существующем коде и прежде чем исследовать цели этого фрагмента кода, я подумал, что это может быть незаконным .... – Jonathan

ответ

2

Вы можете использовать Thread.setContextClassLoader(), если это позволяет менеджер безопасности. Вы должны очень осторожно, так как вы можете получить очень запутывающие результаты, и сообщение об ошибке, которое вы, как правило, получаете, не всегда полезно.

Я предлагаю вам начать новую тему с помощью другого загрузчика классов.

+0

... я могу изменить загрузчик контекстного класса внутри функции run()? это законно? теперь в потоке будут загружаться классы в загрузчик нового класса, хотя, когда он был создан, он загружал классы с разным загрузчиком классов? – Jonathan

+0

Кстати, мне не нужны какие-либо рекомендации; это не код, который я написал. я просто хочу знать, является ли его законным. – Jonathan

+0

Его законный, но хитрый, чтобы получить право таким образом ИМХО. Если это сработает, я бы об этом не беспокоился. Если вы получаете странные ошибки при запуске, это может быть причиной. –

Смежные вопросы