Как создать установщик веб-приложения Java (.exe), включающий Tomcat и MySQL? " - PullRequest
16 голосов
/ 13 мая 2009

Как создать установщик, использующий Java, который объединит файлы tomcat, mysql и war и выйдет финальный exe?

Ответы [ 6 ]

20 голосов
/ 13 мая 2009

Вы можете использовать любой установщик, правда. Я лично использовал InnoSetup , который довольно прост, но все еще может выполнять практически любую задачу во время установки.

В вашем случае вы, вероятно, захотите разместить файлы Tomcat где-нибудь, включая веб-приложение. Настройте некоторые файлы конфигурации и запустите установщик MySQL в режиме без вывода сообщений. Все это вполне возможно с InnoSetup.

Если вам нужна большая гибкость, посмотрите на NSIS , еще одно очень простое, но очень мощное приложение для установки.

9 голосов
/ 13 мая 2009

Возможные варианты уже были в основном освещены в нескольких вопросах, особенно:

... и другие вопросы с тегами java + installer

Хотя некоторые опции, упомянутые в этих вопросах, по общему признанию не могут создать самодостаточные установщики .exe. Если вам подходит коммерческий инструмент, я могу лично порекомендовать install4j (стоит $); кроме всего прочего, он может создавать установочные файлы .exe ( подробности о моем опыте работы с ним ). Или, для более простого, бесплатного инструмента для создания исполняемых файлов Windows из программ Java, см. Launch4j .

Обновление моей рекомендации install4j, основанной на этом комментарии со стороны OP:

Да, установщик exe должен установить Tomcat, MySQL, веб-приложение и дБ Сценарий все в один раз. В конце пользователи нужно только запустить кота и MySQL сервис. Перейти в браузер можно получить доступ к веб-приложению.

С install4j,

  • вы можете отлично связать Tomcat, MySQL и ваше веб-приложение
  • вы также можете автоматически запускать службы из установщика (или оставить его пользователям, как вы предлагаете)
  • если хотите, установщик может даже напрямую запустить браузер и указать его на ваше веб-приложение: -)

Я только что проделал аналогичную работу с install4j (связать сервер приложений, веб-приложение, запустить сценарии базы данных и многое другое; однако без объединения базы данных), поэтому я относительно уверен, что это можно сделать. Я не знаю, можете ли вы сделать это (легко) с помощью бесплатных инструментов, таких как Launch4j.

5 голосов
/ 27 июня 2011

Вот мое минималистичное решение этой проблемы. Я скачал инсталляции tomcat и MySQL без инсталлятора, поэтому я просто распаковал их и попробовал, они работают нормально. В этот момент вы установите военный файл для tomcat и соответствующую схему для mysql. Поэтому, когда вы копируете папки, все копируется. И вы можете проверить, как это работает. Вероятно, вы можете сделать некоторые настройки для них, но для меня они работают просто отлично из коробки, так как мое приложение не так требовательно. Кроме того, я скачал 32- и 64-битные версии программ, чтобы их можно было установить. Я использовал установку Inno, чтобы упаковать установщик. По сути, он копирует обе папки, выбирая архитектуру 32 или 64, и устанавливает оба, tomcat и mysql, в качестве службы Windows.

[Setup]
AppName=MyApp
AppVersion=1.0
DefaultDirName={pf}\MyApp
DefaultGroupName=MyApp
Compression=lzma2
SolidCompression=yes
OutputDir=output   
; "ArchitecturesInstallIn64BitMode=x64" requests that the install be
; done in "64-bit mode" on x64, meaning it should use the native
; 64-bit Program Files directory and the 64-bit view of the registry.
; On all other architectures it will install in "32-bit mode".
ArchitecturesInstallIn64BitMode=x64
; Note: We don't set ProcessorsAllowed because we want this
; installation to run on all architectures (including Itanium,
; since it's capable of running 32-bit code too).

[Files]              
; Install x64 if running in 64-bit mode (x64; see above), x86.exe otherwise.   
Source: "mysql-5.5.13-winx64\*.*"; DestDir: "{app}\mysql"; Check: Is64BitInstallMode; Flags: ignoreversion recursesubdirs createallsubdirs 
Source: "mysql-5.5.13-win32\*.*"; DestDir: "{app}\mysql"; Check: not Is64BitInstallMode; Flags: ignoreversion recursesubdirs createallsubdirs  
; Install x64 if running in 64-bit mode (x64; see above), x86.exe otherwise.   
Source: "apache-tomcat-6.0.32-x64\*.*"; DestDir: "{app}\tomcat"; Check: Is64BitInstallMode; Flags: ignoreversion recursesubdirs createallsubdirs 
Source: "apache-tomcat-6.0.32-x86\*.*"; DestDir: "{app}\tomcat"; Check: not Is64BitInstallMode; Flags: ignoreversion recursesubdirs createallsubdirs
;   
Source: "start.bat"; DestDir: "{app}"; DestName: "start.bat"; 
Source: "stop.bat"; DestDir: "{app}"; DestName: "stop.bat"; 

[Icons]    
Name: "{group}\Start MyApp"; Filename: "{app}\start.bat"
Name: "{group}\Stop MyApp"; Filename: "{app}\stop.bat"

[Run]     
; install mysql and tomcat as services
Filename: "{app}\mysql\bin\mysqld.exe"; Parameters: "--install MyApp_MySQL"
Filename: "{app}\tomcat\bin\service.bat"; Parameters: "install"   
Filename: "{app}\start.bat"; Description: {cm:LaunchProgram,{cm:AppName}}; Flags: nowait postinstall skipifsilent

[UninstallRun]   
; uninstall mysql and tomcat as services  
Filename: "{app}\stop.bat";
Filename: "{app}\mysql\bin\mysqld.exe"; Parameters: "--remove MyApp_MySQL" 
Filename: "set"; Parameters: "CATALINA_HOME={app}\tomcat"
Filename: "{app}\tomcat\bin\tomcat6.exe"; Parameters: "//DS//MyApp_Tomcat"

[CustomMessages]
AppName=MyApp
LaunchProgram=Start MyApp after finishing installation

Чтобы запустить ваше приложение сейчас, все, что вам нужно, это запустить / остановить зарегистрированные сервисы. start.bat

NET START MyApp_MySQL
NET START MyApp_Tomcat
START "" "http://localhost:8080/myapp/" 

stop.bat

NET STOP MyApp_MySQL
NET STOP MyApp_Tomcat

Для меня это работает просто отлично.

  • Может быть, вы можете включить JRE установка, а также вызвать некоторые Comps может не иметь его.
  • Также, если кто-то знает, как проверить порты Tomcat и MySQL уже приняты, и как измените их в файле конфигурации, пожалуйста Расскажи нам.
  • Также, если вы можете проверить IP адрес и введите его вместо localhost, это было бы здорово.

Привет

Amir

1 голос
/ 13 мая 2009

Я бы посоветовал вам использовать для этого Java, installer.jar. Так как вы все равно хотите запустить tomcat, нет необходимости помещать в исполняемый файл. Мы сделали нечто подобное, запрограммировав установщик jar с помощью Ant API (Ant используется программно).

0 голосов
/ 19 июля 2017

Лучше использовать IzPack , это лучше, чем другие, потому что его нужно упаковывать только один раз и использовать в любой операционной системе с таким же скомпилированным jar-файлом.

Я лично использовал его для упаковки tomcat, mysql и некоторых других предпосылок для моего веб-приложения.

Я использовал Launch4J для создания исполняемого файла (.exe) из файла jar, сгенерированного IzPack.

0 голосов
/ 04 сентября 2009

Вы можете использовать BitRock InstallBuilder для него (стоит $). Примеры таких программ можно найти в установщиках приложений Alfresco, Liferay и т. Д., Включая Tomcat, MySQL и т. Д. По адресу BitNami

...