Подтвердить что ты не робот

Как создать Java Webapp Installer (.exe), который включает Tomcat и MySQL? "

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

4b9b3361

Ответ 1

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

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

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

Ответ 2

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

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

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

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

Да, установщику exe необходимо установить tomcat, mysql, веб-приложение и db script все раз. В конце пользователи нужно только запустить tomcat и служба mysql. Перейти в браузер можно доступ к веб-приложению.

С install4j,

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

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

Ответ 3

Вот мое минималистское решение этой проблемы. Я загрузил установки 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 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 уже приняты, и как измените их в файле conf, пожалуйста Расскажи нам.
  • Также, если вы можете проверить IP-адрес адрес и введите его вместо localhost, что было бы здорово.

Привет

Амир

Ответ 4

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

Ответ 5

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

Ответ 6

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

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

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