| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java: Общие вопросы > Регистрация системного загрузчика |
| Автор: lazycat 27.10.2010, 03:22 |
| Доброго времени суток всем! Возникла совершенно неожиданная проблема. Надо написать собственный загрузчик классов. В принципе дело нехитрое, но когда попробовал зарегистрировать его как системный (-Djava.system.class.loader=мой_загрузчик), получаю исключение java.lang.NoSuchMethodException: java.net.мой_загрузчик.<init>(java.lang.ClassLoader) Решил поставить "чистый" эксперимент. Отказался от своего, ставлю в качестве системного URLClassLoader. -Djava.system.class.loader=java.net.URLClassLoader Тот же результат: java.lang.NoSuchMethodException: java.net.URLClassLoader.<init>(java.lang.ClassLoader) Я бы понял, если бы было исключение java.security.AccessControlException, а так в полном недоумении. Подскажите, в какую сторону копать! Заранее благодарен всем откликнувшимся. |
| Автор: Kircul 27.10.2010, 10:07 |
| Ну насколько я вижу, требуется конструктор который принимает другой ClassLoader. У URLClassLoader такого нету, как видимо и у вашего загрузчика. |
| Автор: Skipy 27.10.2010, 11:56 |
| А почему он должен быть системным? Вам зачем самостоятельно грузить Java Runtime? |
| Автор: Kircul 27.10.2010, 12:19 | ||
| Может я конечно что-то не так понял, но судя по информации http://download.oracle.com/javase/6/docs/api/java/lang/ClassLoader.html#getSystemClassLoader%28%29, данный загрузчик не будет загружать JRE. а выполнять только обязаности которые он должен. А уже все что не должен, он сможет делегировать загрузчику по умолчанию. И, да, тут написано:
|
| Автор: lazycat 27.10.2010, 15:28 |
| Действительно, проблема лишь в том, что нет конструктора с одним параметром ClassLoader. Как только я создал его, все заработало. Большое спасибо всем откликнувшимся !!! |