![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
Tony |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1159 Регистрация: 3.3.2006 Где: Riga Репутация: нет Всего: 12 |
Нужно организовать загрузку классов из каталога не зная полного названия класса(package). Тоесть есть папка(test) там класс. Путь D:/test/killer/Test.class .
Не как не могу его загрузить. ![]() |
|||
|
||||
tux |
|
|||
![]() Летатель ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1853 Регистрация: 10.2.2005 Где: msk.ru Репутация: 31 Всего: 132 |
Честно говоря, совершенно не понял что ты хочешь сделать. Объясни подробнее.
|
|||
|
||||
Tony |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1159 Регистрация: 3.3.2006 Где: Riga Репутация: нет Всего: 12 |
Кароче есть папка там лежат классы в пакетах. Я не знаю какие имена классов. Всё что я могу сделать это рекурсивно прочитать содержимое папок. Тоесть например есть папка test. Там лежат пакет: например killer. Я пробегаю рекурсией узнаюй с помищю file.listFiles(), что там есть какие то классы. Так вот имея путь к файлу например: d:/test/killer/Test.class. Мне нужно его загрузить. Kak загрузить? Постоянно вылитает: java.lang.NoClassDefFoundError
|
|||
|
||||
shimopus |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 103 Регистрация: 25.8.2006 Репутация: 1 Всего: 1 |
воспользовавшись дефолтным ClassLoader-ом
|
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
-------------------- 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. |
|||
|
||||
tux |
|
|||
![]() Летатель ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1853 Регистрация: 10.2.2005 Где: msk.ru Репутация: 31 Всего: 132 |
Ну откуда же класслоудер знает про эти твои классы? Конечно not found всегда будет. Если у тебя при запуске приложения каталог, где лежат классы известен, то просто можно добавить его в CLASS-PATH. Если нет, то придется реализовывать свой загрузчик классов. В FAQ есть пример как это сделать - http://vingrad.ru/JAVA-ART-002949.
|
|||
|
||||
Tony |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1159 Регистрация: 3.3.2006 Где: Riga Репутация: нет Всего: 12 |
Пробывал и свой и твой вариант. Не прокатывает. |
||||
|
|||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Что значит "не прокатывает", ошибки или что? -------------------- 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. |
|||
|
||||
Tony |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1159 Регистрация: 3.3.2006 Где: Riga Репутация: нет Всего: 12 |
Написал.По не внимательности не работало. Всем большое спасибо.
Это сообщение отредактировал(а) Tony - 17.12.2006, 15:50 |
|||
|
||||
DOKA |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 68 Регистрация: 13.8.2006 Репутация: нет Всего: нет |
А что делать если загружаемый мною класс Class1 является наследованым от моего абстрактного Class2? При попытке загрузить такой класс мне программа выдаёт ошибку загрузки класса Class2, насмотря на то, что он прикомпилирован к моей программе! Может его нужно как-то предварительно загрузить в память? По сути у меня суть - плагины. Есть опубликованый класс Class2 и все, кто хочет написать плагин, наследуются от него и кидают класс в определённую директорию. |
||||
|
|||||
kkorsakoff |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 378 Регистрация: 18.10.2005 Где: Санкт-Петербург Репутация: 3 Всего: 14 |
Значит либо твой лоадер должен знать, откуда и ак загрузить Class2, либо если он не знает, передавай загрузку его родителю. (уж он то знает хоть?
![]() |
|||
|
||||
DOKA |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 68 Регистрация: 13.8.2006 Репутация: нет Всего: нет |
Вот я и спрашиваю, как это сделать? ![]() |
|||
|
||||
DOKA |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 68 Регистрация: 13.8.2006 Репутация: нет Всего: нет |
Вопрос снят.
После прочтения манов по ClassLoader выяснилось, что необходимо создавать этот сласслоадер так:
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "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. |