![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| lazycat |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 227 Регистрация: 15.7.2007 Репутация: 1 Всего: 1 |
Доброго времени суток всем!
Сразу оговорюсь: решение этого вопроса НЕ является жизненно важным для меня. Есть и другие решения. Но в процессе работы стало интересно. Одним словом, описываю задачу. Есть большое приложение, скажем в файле b.jar. Это приложение тянет за себя кучу библиотек, например, alib.jar, blib.jar ... zlib.jar. Главный класс приложения, допустим, класс B. Вызывается приложение так. java -cp alib.jar;blib.jar;...;zlib.jar -jar b.jar Теперь я захотел сделать класс A, из которого буду вызывать приложение. В нем я попросту вызываю метод main() класса B. И, естественно, класс A (пусть он в файле a.jar) теперь вызывается так. java -cp b.jar;alib.jar;blib.jar;...;zlib.jar -jar a.jar А теперь о сути вопроса. Я хочу вызвать класс A такой командой java -jar a.jar А необходимые значения CLASSPATH установить В САМОМ КЛАССЕ A !!! Есть ли возможности сделать это? Лично я не нашел. Может быть кто-нибудь знает? (Естественно, установка CLASSPATH в системе как решение не рассматривается). Вот такая возникла задачка - повод для обсуждений. Всего наилучшего! |
|||
|
||||
| dobrolub |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 385 Регистрация: 18.12.2009 Где: Vancouver, Canada Репутация: 11 Всего: 16 |
Тут два варианта
1 - добавить зависимости в манифест в свойство Class-Path: Class-Path: alib.jar blib.jar clib.jar Main-Class: myprogram.A 2. Написать свой загрузчик классов наследуемый от URlClassLoader. |
|||
|
||||
| lazycat |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 227 Регистрация: 15.7.2007 Репутация: 1 Всего: 1 |
Спасибо! О манифесте я как-то и не задумывался, сразу уперся в код. Просто и изящно!!! А второе решение мне как-то непонятно. Ну и что, что я напишу загрузчик? Возникнет та же проблема: как установить CLASSPATH в java-коде. Вернемся к тому, с чего начали. Или я чего-то не понимаю? |
|||
|
||||
| dobrolub |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 385 Регистрация: 18.12.2009 Где: Vancouver, Canada Репутация: 11 Всего: 16 |
UrlClassLoader может загружать классы с любого url, в том числе и с url файла на локальном диске.
|
|||
|
||||
| lazycat |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 227 Регистрация: 15.7.2007 Репутация: 1 Всего: 1 |
Но мне же надо не классы загружать: c этой задачей я бы как-то справился. Мне по сути надо сообщить о библиотеках тем классам, о которых я по сути ничего не знаю (а в данном контексте, и знать не хочу) |
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |