Вот мое минималистичное решение этой проблемы. Я скачал инсталляции 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