Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java tools & IDE's > Средства для создания инсталляционного пакета веб-


Автор: JPro 12.9.2006, 11:58
Ребята, добрый день всем.

Интересует такой вопрос: никто никогда не создавал одного ехе-шника, который бы инсталлировал всё веб-приложение + яву + апач томкэт + БД?

Передо мной встала задача: есть Apache Tomcat 5.0.29, веб-приложение, состояще из сервлетов, ЖСП и парочки апплетов, работающее с БД PostgreSQL 8.1. Необходимо как-то собрать всё это воедино для распространения, в инсталлятор, который бы устанавливал веб-приложение + скрипты для БД и при необходимости саму БД, апач и яву. Кто-нибудь сталкивался с таким? Решал вопрос? Как?

Всё, что я нашёл в нете для явы - парочку платных инсталляторов и посоветовали ещё кое-что(см. ниже). Нет ли альтернатив? Например, бесплатных или же каких-то иных способов решить вопрос? Или людей, которые знают, как добиться моей цели с помощью этих средтв? Та пусть даже платные, главное, чтобы мою проблему решили...

1. Скачал InstallAnywhere - разобрался. Опций до неба, но только для десктоп-приложения...

2. Advanced Install 4.3 - посмотрел, только для сервисов и десктоп приложений. Но довольно удобно...

3. NSIS - скачал, но только начинаю смотреть.

4. Inno Setup - скачал, посмотрел - основанный на скриптах инсталлятор только для десктоп-апп.


Эх, было бы хорошо, если бы нашёлся человек, уже прошедший через это... с которым можно было бы посоветоваться что и как... Ведь я только начинаю создавать инсталлятор, могут быть допущены глупые ошибки, которых мог бы избежать... Если вдруг кто-то знает, отзовитесь!

Огромное спасибо за помощь заранее! С нетерпением жду ответов, советов, решений.

Автор: y3u 12.9.2006, 13:09
если есть таньге, посмотри в сторону http://www.ej-technologies.com/products/install4j/overview.html... Кстати, такого рода качественный софт обычно всегда платный, а крякнутыми версиями дистрибьютить серьезные коммерческие продукты не только несерьезно, но и черевато  smile ...

Автор: JPro 19.9.2006, 19:30
Решил использовать отличную бесплатную, к тому же open-source tool IzPack.

Итак, за прошедшее время, я таки разобрался с заменой переменных в нужных мне файлах(т.е. редактированием установок) + смог поставить, прописать в службах и запустить Апач Томкэт. Всё это из IzPack'a.

Но тут, блин, встала проблемка... оказывается, Томкэту для работы нужен не только JRE, но и JDK, что меня весьма удивило... Казалось бы, законченный продукт, а требуед девелопмент кита... Но потом, подумав про компиляцию жсп на ходу и т.д., решил, что действительно нужен... Ну да ладно.

Проблема в следующем: 

1. Можно ли как-то из инсталлятора, созданного IzPack'ом, определить, установлена ли в системе JDK? (вижу пока только один вариант - проверить наличие JAVA_HOME - при условии, что JDK ВСЕГДА И ОБЯЗАТЕЛЬНО создает её)

2. Можно ли как-то в инсталляторе, созданном IzPack'ом, создать условие и в том или ином его случае выполнять различные действия? То есть, к примеру, я узнаю, что JDK не установлен. Тогда мне надо его установить. Если же он уже установлен, то этот этап я проскакиваю.

Очень необходима ваша помощь.

Огромное спасибо заранее за любое участие!

Автор: y3u 19.9.2006, 20:03
имхо, только проверять java_home... хотя с другой стороны, у меня на машине стоит 4 разных SDK, JAVA_HOME прописан к самой старой  smile Так что это не показатель, ИМХО, надо при инсталле затребовать с пользователя указать папку с установленным СДК...

Автор: batigoal 20.9.2006, 09:12
Цитата(JPro @  19.9.2006,  20:30 Найти цитируемый пост)
вижу пока только один вариант - проверить наличие JAVA_HOME - при условии, что JDK ВСЕГДА И ОБЯЗАТЕЛЬНО создает её

Этого гарантировать нельзя.

Автор: JPro 20.9.2006, 15:06
Народ, на данный момент имеется два вопроса... надеюсь, вы поможете в их разрешении:

1. Собрал инсталлер в IzPack'e, включил туда Apache Tomcat 5.5.17, который по заверениям всех использующих его, абсолютно не нуждается в SDK. Попробовал поставить на одной машине - всё ставится замечательно. Всё копируется, сервис инсталлируется(путём запуска service.bat), потом я его из инсталляции запускаю - всё замечательно. В конце-концов моё веб-приложение работает отлично! (не говорю пока про установку PostgreSQL, просто к приложению есть доступ через томкэт).

После этого тот же самый инсталлер запускаю на другой машине, где всё тоже ставится замечательно, НО запускаться сервис Apache Tomcat не хочет. пишет только: "The Apache Tomcat service on Local Computer started and then stopped. Some services stop automatically if they have no work to do, for example, the Perfomance Logs and Alerts service". В чём дело - не пойму... Там, где ставил всё без проблем, JDK нет точно. Есть только JRE.

Никто не знает, в чём может быть проблема??

2. Насчёт условий в IzPack'e, уважаемые форумчане, у меня к вам вопрос: не знаете ли вы, как можно что-либо проверить в инсталляции, созданной IzPack'ом? К примеру, был бы тэг, вроде <condition> или ещё что... Ну очень надо действовать по-разному в случае если веб-сервер установлен или же нет. Спасибо заранее!

Автор: svw29 16.11.2011, 01:20
Присоединяюсь к вопросу -  есть необходимость проверять наличие более ранней инсталляции приложения, также в силу ряда причин некоторые обновляемые в ходе инсталляции файлы могут быть заблокированными по-причине работы модулей приложения... 

Что пробовал - ProcessingPanel и executefile и команду <executable> - запускаемые там пакетные файлы отрабатывают уже после копирования файлов в директорию устанавливаемого ПО, что приводит к ошибкам и не позволяет контролировать ситуацию...

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

Документацию читаю, как осуществить задуманное с реестром и сист. перем., пока не понял, буду рад работающему примеру ..

Добавлено через 6 минут и 35 секунд
И еще вдогонку - атрибуты тега executable os ="linux" почему-то по факту приводят к запуску соответствующего файла и в Вин хР 
IzPack 3.51

Автор: LLIbIcpEP 4.1.2012, 13:31
Цитата(JPro @ 19.9.2006,  19:30)
Решил использовать отличную бесплатную, к тому же open-source tool IzPack.

Итак, за прошедшее время, я таки разобрался с заменой переменных в нужных мне файлах(т.е. редактированием установок) + смог поставить, прописать в службах и запустить Апач Томкэт. Всё это из IzPack'a.

Но тут, блин, встала проблемка... оказывается, Томкэту для работы нужен не только JRE, но и JDK, что меня весьма удивило... Казалось бы, законченный продукт, а требуед девелопмент кита... Но потом, подумав про компиляцию жсп на ходу и т.д., решил, что действительно нужен... Ну да ладно.

Проблема в следующем: 

1. Можно ли как-то из инсталлятора, созданного IzPack'ом, определить, установлена ли в системе JDK? (вижу пока только один вариант - проверить наличие JAVA_HOME - при условии, что JDK ВСЕГДА И ОБЯЗАТЕЛЬНО создает её)

2. Можно ли как-то в инсталляторе, созданном IzPack'ом, создать условие и в том или ином его случае выполнять различные действия? То есть, к примеру, я узнаю, что JDK не установлен. Тогда мне надо его установить. Если же он уже установлен, то этот этап я проскакиваю.

Очень необходима ваша помощь.

Огромное спасибо заранее за любое участие!

Лучше передать ответственность за наличие JDK на пользователя. Пусть сам выберет чекбокс. По дефолту будет распаковываться свой JDK, если пользователь меняет чекбокс, то нужно показать панель для выбора пути.
Ну и разумеется нужно использовать http://izpack.org/documentation/installation-files.html#the-conditions-element-conditions.

Добавлено через 4 минуты и 4 секунды
Цитата(svw29 @ 16.11.2011,  01:20)
Присоединяюсь к вопросу -  есть необходимость проверять наличие более ранней инсталляции приложения, также в силу ряда причин некоторые обновляемые в ходе инсталляции файлы могут быть заблокированными по-причине работы модулей приложения... 

Что пробовал - ProcessingPanel и executefile и команду <executable> - запускаемые там пакетные файлы отрабатывают уже после копирования файлов в директорию устанавливаемого ПО, что приводит к ошибкам и не позволяет контролировать ситуацию...

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

Документацию читаю, как осуществить задуманное с реестром и сист. перем., пока не понял, буду рад работающему примеру ..

Добавлено @ 01:26
И еще вдогонку - атрибуты тега executable os ="linux" почему-то по факту приводят к запуску соответствующего файла и в Вин хР 
IzPack 3.51

В изпаке есть встроенные механизмы для апгрейдов продукта, правда очень примитивные. Сам не использовал их, знаю только что они есть.
PS: os="unix", кажется, а вообще надежнее использовать conditions. Изпак хороший продукт, но багов немеренно.

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