Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> установка CLASSPATH из программы, как установить CLASSPATH 
:(
    Опции темы
lazycat
Дата 6.5.2010, 22:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 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 в системе как решение не рассматривается).

Вот такая возникла задачка - повод для обсуждений. 

Всего наилучшего!

PM MAIL   Вверх
dobrolub
Дата 6.5.2010, 22:52 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 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.
PM   Вверх
lazycat
Дата 6.5.2010, 22:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 227
Регистрация: 15.7.2007

Репутация: 1
Всего: 1



Цитата(dobrolub @  6.5.2010,  22:52 Найти цитируемый пост)
1 - добавить зависимости в манифест в свойство Class-Path: 
Class-Path: alib.jar blib.jar clib.jar
Main-Class: myprogram.A

2. Написать свой загрузчик классов наследуемый от URlClassLoader. 


Спасибо! О манифесте я как-то и не задумывался, сразу уперся в код. Просто и изящно!!!

А второе решение мне как-то непонятно. Ну и что, что я напишу загрузчик? Возникнет та же проблема: как установить CLASSPATH в java-коде. Вернемся к тому, с чего начали. Или я чего-то не понимаю?

PM MAIL   Вверх
dobrolub
Дата 6.5.2010, 23:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 385
Регистрация: 18.12.2009
Где: Vancouver, Canada

Репутация: 11
Всего: 16



UrlClassLoader может загружать классы с любого url, в том числе и с url файла на локальном диске.
PM   Вверх
lazycat
Дата 7.5.2010, 12:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 227
Регистрация: 15.7.2007

Репутация: 1
Всего: 1



Цитата(dobrolub @  6.5.2010,  23:16 Найти цитируемый пост)
UrlClassLoader может загружать классы с любого url, в том числе и с url файла на локальном диске.


Но мне же надо не классы загружать: c этой задачей я бы как-то справился. Мне по сути надо сообщить о библиотеках тем классам, о которых я по сути ничего не знаю (а в данном контексте, и знать не хочу)
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0443 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.