Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > Как создать jar файл?


Автор: unkis 9.10.2005, 23:58
Ребята есть проект который состоит из трех файлов: a.java, b.java, main.java
все они находятся в package de.unkis
к ним подключены ещё две внешние библтотеке 1.jar и 2.jar

Так вот как мне сделать при помощи eclipse или JIDEA один скажем go.jar файл,
чтобы потом его можно было бы вот так вот запустить

Код

java -jar go.jar


???????????????


зарания благодарен.

Автор: sergejzr 10.10.2005, 00:19
в eclipse есть export в jar.
Добавлено @ 00:21
Кликаешь на прект правой кнопкой мыши и выбираешь "Export" там jar. Остальное самообьясняемое smile

Автор: unkis 10.10.2005, 08:04
это всё да только он не вставляет в это jar сторонние библиотеке, а надо чтобы он их тоже дуда вставил.

Автор: batigoal 10.10.2005, 08:30
Цитата(unkis @ 10.10.2005, 09:04)
это всё да только он не вставляет в это jar сторонние библиотеке, а надо чтобы он их тоже дуда вставил.

Мне кажется, так обычно не делается. Попробуй положить их "рядом", и в манифесте добавить их в classpath относительно текущей директории.

Автор: Гость_unkis 10.10.2005, 11:23
Esli ne tyagelo, podskogite kak sozdovat, imenno strukturu mainfest, nu i esli mogno to shag za shagom


Zaranie blagodaren.

Автор: chief39 10.10.2005, 12:11
Хмм... распакуй содержимое библиотечных джаров и положи их вместе со своим кодом в один джар. Будет по разным пакетам(суть папкам) внутри джарика smile
Вообще библиотеки отдельно от прог идут обычно, но если надо конечный-преконечный продукт - то запихни всё одним гамузом. С точки зрения юзера перед ним должен быть один джар? Я так понимаю он и не должен знатьчто у тебя там и какие библиотеки пользуешь. Вот и сделай так, что это вроде как полностью цельный продукт. smile

Автор: unkis 10.10.2005, 16:51
Ты говоришь они(библиотеки) должны идти отдельно.

А как это сделать, что и где надо прописать?

Автор: IgorONE 12.10.2005, 02:53
используйте ANT smile

Автор: batigoal 12.10.2005, 07:35
Цитата(unkis @ 10.10.2005, 17:51)
А как это сделать, что и где надо прописать?

Думаю, надо действать так:
1) положить эти jar'ы в один каталог
2) включить в свой "главный" архив (go.jar) файл манифеста с опцией
Цитата
Class-Path: .;./lib1.jar;./lib2.jar


Но я не уверен, что это делается именно так.
Добавлено @ 07:39
Цитата(IgorONE @ 12.10.2005, 03:53)
используйте ANT smile

Я не очень понимаю, как он поможет в этой задаче. Все равно надо решать, как разместить файлы, а паковать архив напрямую, или через ant - разницы нет.

Автор: chief39 12.10.2005, 10:07
Цитата(unkis @ 10.10.2005, 16:51)
Ты говоришь они(библиотеки) должны идти отдельно.


Я ещё добавил "обычно" smile

Например то же JRE включает в себя библиотеки. Которые поставляются предварительно, без твоей проги. Если твои библиотечные джарики кому-то ещё понадобятся кроме твоей проги - поставь их отдельно. Можешь свою папку в "програм файлз" создать и сделать инсталлятор своих библиотек. Ну и при инсталляции прописывать класспас к сим джарам.

Но мне кажется чт оэти библиотеки только твоя прога будет пользовать.

Сдаётся мне, лучше сделать так:
Распаковать в папку X всё из этих джаров.
Получишь там(к примеру) папки org или com с подпапками. Туда же(в X) запихиваешь свой проект.
А потом всё из папки X запихиваешь в свой джар.
И при запуске от корня в твоём джаре оно найдёт эти пакеты. То есть прописывать ничего не надо будет нигде.

ЗЫ:
Цитата(unkis @ 10.10.2005, 16:51)

А как это сделать, что и где надо прописать?


Если всё-таки отдельно пойдут - переписываешь библиотеки куда-то в "програм файлз"
И прописываешь переменную среды CLASSPATH="<полный путь к джару1>;<полный путь к джару2>". Если не делал такого - в командной строке под Винду:
Код

set CLASSPATH="c:\Program Files\MyLib\MyLib.jar"

(например smile )

Автор: batigoal 12.10.2005, 10:11
Цитата(chief39 @ 12.10.2005, 11:07)
И при запуске от корня в твоём джаре оно найдёт эти пакеты. То есть прописывать ничего не надо будет нигде.

Это так, но нет ли где-нибудь в лицензиях ограничения на подобное использование?

Автор: chief39 12.10.2005, 10:21
Цитата(Lamer @ 12.10.2005, 10:11)
Это так, но нет ли где-нибудь в лицензиях ограничения на подобное использование?


Ну так уж вопрос звучал smile

Цитата(unkis @ 9.10.2005, 23:58)
Так вот как мне сделать при помощи eclipse или JIDEA один скажем go.jar файл,
чтобы потом его можно было бы вот так вот запустить


По сути уже нестыкуется с лицензией.

Понятно что в идеале надо их отдельно выкладывать и использовать. Но раз уж такой вопрос - то далее ответственость за нарушение лицензии ложится на плечи того, кто такой джар создаст smile Вплоть до расстрела через повешение smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)