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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> самозапускающийся Jar архив. Как создать? 
:(
    Опции темы
polosatij
  Дата 7.10.2004, 13:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1143
Регистрация: 22.2.2004
Где: Stuttgart<-> ;Karlsruhe, Germany

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



есть jar.exe. Но что-то так у меня и не получается создать Jar архив по инструкции.. то путь не правильный.. теперь не может найти main-class...

Народ, может кто опишет? я думаю эта тема не мне одному была бы интересна.

Заранее спасибо! smile.gif


--------------------
PM   Вверх
Alone
Дата 7.10.2004, 13:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 663
Регистрация: 11.5.2003
Где: Dnepropetrovsk, U A

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



для создания потребуется:
- текстовый файлик манифест (к примеру Manifest.txt)
в котором описан главный класс (тот который стартует)
file Manifest.txt
Код

Main-class: pbx/pbxMain


Далее вызываем команду jar <options> <file.jar> <manifest> <files>
примерно вот так
jar -cfm MyProg.jar Manifest.txt MyClass1.class MyClass2.class
где:
-с создать архив jar
-f указать имя файла архива(MyProg.jar)
-m добавить информацию из манифест файла
далее идут файлы для добавления в архив.
Можно указать -С каталог_с файлами

Ниже приведу мой скрипт для сборки проекта
Код

#!/bin/sh

echo "Clean project"
rm -f pbx/*.class

echo "Clean old jar files"
rm -f *.jar
echo "Compile project"
javac -g:none -O pbx/*.java

echo "Create jar file"
jar -cfm pbx.jar manifest pbx/*.class img/* snd/*

echo "Sign jar file with .keystore"
jarsigner  -keystore .keystore -storepass secret pbx.jar "pbxKey"

echo "Get MANIFEST.MF from jar file"
unzip pbx.jar META-INF/MANIFEST.MF
zip -d pbx.jar META-INF/MANIFEST.MF

echo "Modify MANIFEST.MF"
echo "Main-class: pbx/pbxMain" > MANIFEST.MF
cat META-INF/MANIFEST.MF >> MANIFEST.MF
mv -f MANIFEST.MF META-INF/

echo "Update META-INF/MANIFEST.MF into jar file"
zip -u pbx.jar META-INF/MANIFEST.MF

echo "Cleaning..."
rm -drf META-INF

echo "Clean project"
rm -f pbx/*.class



Тут есть один хитрый трюк...
После подписывания архива - jarsigner затирает оригинальный manifest, который я ему подсовывал. Пришлось выуживать файл Manifest из архива, изменять его и ложить обратно.
Но это потребуется лишь в том случае, когда надо будет подписывать апплет

Это сообщение отредактировал(а) Alone - 7.10.2004, 13:34


--------------------
web developer/telecommunication specialist.
mailto: [email protected]
ICQ#28442924

PM MAIL WWW ICQ   Вверх
polosatij
Дата 7.10.2004, 14:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1143
Регистрация: 22.2.2004
Где: Stuttgart<-> ;Karlsruhe, Germany

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



sdelal vs'e', kak napisano..
ne poluchaetsja ... sad.gif


ja ne vizhu v manifeste nazvanie startujushego klassa. Vot manifest posle ego obrabotki jar-om..

MANIFEST.MF
Код


Manifest-Version: 1.0
Created-By: 1.4.1_02 (Sun Microsystems Inc.)



u menja j2sdk1.4.1_02. Krome togo, v file.jar obrazuetsja papki s putem C:\Documente und ... \Administrator\... i t.d do mainClass.class. Tak dolzhno byt'?

file.jar sozdaetsja.. no ne zapuskaetsja pri dvojnom shelchke!
pri starte file.jar v "cmd.exe" nichego ne proishodit.. prosto perehod zanogo k stroke
C:\>


hmmmm.... hmmm.gif


--------------------
PM   Вверх
Domestic Cat
Дата 7.10.2004, 15:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

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



Посмотри еще здесь:

http://www.cs.princeton.edu/introcs/85appl...on/jar/jar.html

Если все равно не получается, советую стянуть ant и разобраться с ним, он сам может jar архивы делать.


--------------------

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


Опытный
**


Профиль
Группа: Участник
Сообщений: 663
Регистрация: 11.5.2003
Где: Dnepropetrovsk, U A

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



а манифест не знает какой класс стартующий... Это ты сам должен его туда прописать!


--------------------
web developer/telecommunication specialist.
mailto: [email protected]
ICQ#28442924

PM MAIL WWW ICQ   Вверх
AntonSaburov
Дата 7.10.2004, 17:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

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



Цитата(Alone @ 7.10.2004, 17:41)
а манифест не знает какой класс стартующий... Это ты сам должен его туда прописать!

Золотые слова smile.gif
Самому надо такие штуки прописывать. Или использовать настройки IDE (если ты ее юзаешь). Некоторые такое помогают делать.
PM MAIL WWW ICQ   Вверх
Zandr
Дата 8.10.2004, 07:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Гы smile.gif smile.gif smile.gif smile.gif smile.gif smile.gif smile.gif smile.gif
Есть фишка одна для файлов, которые добавляются к манифесту smile.gif
Каждая значащая строка должна оканчиваться переводом строки.
Т.е. создаешь файл, набираешь строчку Main-Class: MyClassWithMAINMethod жмешь на Enter, сохраняешь его (например как mf) Потом что-то типа jar -cfm My.jar mf *. Имеет значение в каком порядке идут буковки f и m в параметрах:
jar -cmf mf my.jar *
но:
jar -cfm my.jar mf *

Это сообщение отредактировал(а) Zandr - 8.10.2004, 12:11
PM MAIL   Вверх
Alone
Дата 8.10.2004, 12:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 663
Регистрация: 11.5.2003
Где: Dnepropetrovsk, U A

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



верно. поэтому для порядку - лучче указывать <ключ> <параметр>
типа jar -c -m mf -f file etc...
а насчет первода строки - абсолютно верно! Это как "отче наш" помнить надо smile.gif


--------------------
web developer/telecommunication specialist.
mailto: [email protected]
ICQ#28442924

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

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

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


 




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


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

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