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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> CLASSPATH 
V
    Опции темы
Tony
Дата 24.10.2007, 18:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1159
Регистрация: 3.3.2006
Где: Riga

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



Приветик smile
Зада4а такая. Есть консольная программа. Она исползует либи(jars) сторонние: POI. Так вот в папке программы есть папка либс там все сторонние библиотеки, как указать CLASSPATH на программном уровне или както ещё, 4тоб сторонние либи подхавтились, но не изветсно куда будет поставлена прога.  smile 


--------------------
user posted image
user posted image
PM MAIL Skype   Вверх
_Michael
Дата 24.10.2007, 18:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Код

java -classpath libs MyApplication
 
smile задаешь ключем -classpath  java-машине папки где следует искать нужные классы. Например папка libs относительно текущей директории.

Это сообщение отредактировал(а) _Michael - 24.10.2007, 18:54


--------------------
...не убивайся ни о чем - все временно,
хоть ночь темна но светлым днем беременна...

Саади
PM MAIL   Вверх
Maksym
Дата 24.10.2007, 18:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


.
***


Профиль
Группа: Участник Клуба
Сообщений: 1456
Регистрация: 19.8.2005
Где: Odessa, Black Sea

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



Tony
Путь относительно точки (директории приложения) если задать?
PM MAIL   Вверх
Tony
Дата 24.10.2007, 19:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1159
Регистрация: 3.3.2006
Где: Riga

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



Кру4у вер4у не 4его не полу4ается smile . 
Иерархия такая:
prog
|
|----bin (prosto papka)
       |-------com (paket)
                     |--------Test
|----lib
       |---- jar'i
|----test.sh


--------------------
user posted image
user posted image
PM MAIL Skype   Вверх
_Michael
Дата 24.10.2007, 19:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Код

C:\workspace\prog\bin>java -classpath .;..\libs\mylib1.jar;..\libs\mylib2.jar com.Test

Надо или указывать папку libs если там нету jar-архивов или полностью каждый jar-архив отдельно если таковые имеются

Добавлено через 2 минуты и 15 секунд
То-есть если нужные классы в разных Джарках то надо не просто путь к папке с ними указать, а через ; каждый джар отдельно прописывать.


--------------------
...не убивайся ни о чем - все временно,
хоть ночь темна но светлым днем беременна...

Саади
PM MAIL   Вверх
LSD
Дата 24.10.2007, 20:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

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



Напиши bat-ник или sh-ник который бы просто копировал в все jar-ники из каталога lib в некую переменную, а дальше скармливай ее ключу -cp.


--------------------
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.
PM MAIL WWW   Вверх
_Michael
Дата 24.10.2007, 20:02 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



или как вариант если запускать не из папки bin а из главной папки prog то:

Код

C:\workspace\prog>java -classpath bin;libs\mylib1.jar;libs\mylib2.jar com.Test



--------------------
...не убивайся ни о чем - все временно,
хоть ночь темна но светлым днем беременна...

Саади
PM MAIL   Вверх
Tony
Дата 24.10.2007, 20:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1159
Регистрация: 3.3.2006
Где: Riga

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



test.sh:
Код

java -classpath bin;lib/poi-scratchpad-3.0.1-FINAL-20070705.jar;lib/poi-3.0.1-FINAL-20070705.jar;lib/poi-contrib-3.0.1-FINAL-20070705.jar com.Test

вываливается:
то 4то не правелние опции и:
Код

test.sh: line 1: lib/poi-scratchpad-3.0.1-FINAL-20070705.jar: cannot execute binary file
test.sh: line 1: lib/poi-3.0.1-FINAL-20070705.jar: cannot execute binary file
test.sh: line 1: lib/poi-contrib-3.0.1-FINAL-20070705.jar: cannot execute binary file



--------------------
user posted image
user posted image
PM MAIL Skype   Вверх
LSD
Дата 24.10.2007, 20:26 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

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



Под *nix разделитель пути : а не ;.


--------------------
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.
PM MAIL WWW   Вверх
chief39
Дата 24.10.2007, 20:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


карманная тигра
***


Профиль
Группа: Участник Клуба
Сообщений: 1631
Регистрация: 20.5.2005
Где: Киев

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



Цитата(Tony @  24.10.2007,  20:19 Найти цитируемый пост)
test.sh:

Цитата(Tony @  24.10.2007,  20:19 Найти цитируемый пост)
вываливается:
то 4то не правелние опции и:


Возьми значение этого своего класспаса в кавычки - похоже шельник пытается "исполнить" джарники smile

Добавлено через 23 секунды
Цитата(LSD @  24.10.2007,  20:26 Найти цитируемый пост)
Под *nix разделитель пути : а не ;. 

Гм... низаметил. Точно smile


--------------------
Люди - это свечи. Они либо горят, либо их - в жопу!(с)

PM MAIL   Вверх
Tony
  Дата 24.10.2007, 20:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1159
Регистрация: 3.3.2006
Где: Riga

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



Полу4илось !!!!!  smile. Заменил на : smile. Спасибо LSD i _Michael . Тема закрыта


--------------------
user posted image
user posted image
PM MAIL Skype   Вверх
Hidrag
Дата 12.11.2007, 14:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



А другого способа нет?
Не очень удобно получается, например заказчику поставляется приложение с выполняемым джарником, в директории приложения есть папка Lib, хотелось бы потом, по мере необходимости класть туда нужные JAR файлы (JDBC драйвера), а программа при выполнении подхватывала.

Например, программа для работы с данными. Изначально неизвестна СУБД с которой она будет работать. В настройках программы можно указать путь к драйверу, строка для Class.forName, урл,  логин и пасс для подключения. 
То есть кроме как дописывать classpath к либам в строку запуска приложения нет другого способа? Например программно при выполнении программы задать это как нибудь


--------------------
user posted image
PM WWW ICQ   Вверх
w1nd
Дата 12.11.2007, 16:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вертилятор
***


Профиль
Группа: Завсегдатай
Сообщений: 1077
Регистрация: 22.3.2006
Где: Москва

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



Цитата(Hidrag @  12.11.2007,  14:45 Найти цитируемый пост)
То есть кроме как дописывать classpath к либам в строку запуска приложения нет другого способа? Например программно при выполнении программы задать это как нибудь

В шестёрке можно использовать шаблоны в класс-пути.


--------------------
user posted imageuser posted image
PM MAIL ICQ   Вверх
Hidrag
Дата 12.11.2007, 17:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



w1nd, Смотрю доку не вижу ничего... 
Погуглил по словам pattern + classpath+ java тоже ничего нет



--------------------
user posted image
PM WWW ICQ   Вверх
LSD
Дата 12.11.2007, 18:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

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



Цитата

As a special convenience, a class path element containing a basename of * is considered equivalent to specifying a list of all the files in the directory with the extension .jar or .JAR (a java program cannot tell the difference between the two invocations). 

For example, if directory foo contains a.jar and b.JAR, then the class path element foo/* is expanded to a A.jar:b.JAR, except that the order of jar files is unspecified. All jar files in the specified directory, even hidden ones, are included in the list. A classpath entry consisting simply of * expands to a list of all the jar files in the current directory. The CLASSPATH environment variable, where defined, will be similarly expanded. Any classpath wildcard expansion occurs before the Java virtual machine is started -- no Java program will ever see unexpanded wildcards except by querying the environment. For example; by invoking System.getenv("CLASSPATH").

из JavaDoc по 6-ке.


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

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

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


 




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


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

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