Jak utworzyć Instalator Java webapp (.exe) który zawiera Tomcat i MySQL?"

Jak stworzyć instalator za pomocą Javy, który połączy plik tomcat, mysql i war i wyjdzie finalny exe?

Author: user3270575, 2009-05-13

6 answers

Przydałby się każdy instalator, naprawdę. Osobiście użyłem InnoSetup , który jest dość prosty, ale może wykonać prawie każde zadanie w czasie instalacji.

W Twoim przypadku prawdopodobnie chcesz umieścić pliki Tomcat gdzieś, w tym webapp. Dostosuj niektóre pliki konfiguracyjne i uruchom instalator MySQL w trybie cichym. Wszystko to jest całkowicie możliwe dzięki InnoSetup.

Jeśli potrzebujesz większej elastyczności, możesz spojrzeć na NSIS, kolejny bardzo prosty, ale bardzo potężna aplikacja instalatora.

 19
Author: Gerco Dries,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-05-13 08:53:42

Możliwe opcje zostały już w dużej mierze omówione w kilku pytaniach, zwłaszcza:

...i inne pytania otagowano java + installer

Choć wprawdzie niektóre opcje wymienione w tych pytaniach nie mogą produkować samowystarczalne .instalatorów exe. Jeśli komercyjne narzędzie jest dla Ciebie w porządku, mogę osobiście polecić install4j (kosztuje $); między innymi może tworzyć .instalatory exe (szczegóły o moich doświadczeniach z nim ). Aby uzyskać prostsze, darmowe narzędzie do tworzenia plików wykonywalnych Windows z programów Java, zobacz Launch4j.

Aktualizacja mojej rekomendacji install4j, na podstawie tego komentarza OP:

Tak, instalator exe musi zainstalować na tomcat, mysql, aplikacja internetowa i db scenariusz na raz. Na koniec użytkownicy wystarczy uruchomić tomcat i usługa mysql. Przejdź do przeglądarki można dostęp do aplikacji internetowej.

Z install4j,

  • możesz spakować Tomcat, MySQL i webapp po prostu dobrze
  • Możesz również automatycznie uruchamiać usługi z instalatora (lub pozostawić je użytkownikom zgodnie z sugestią)
  • Jeśli chcesz, Instalator może nawet bezpośrednio uruchomić przeglądarkę i skierować ją do twoja webapp : -)

Właśnie zrobiłem podobną rzecz z install4j (pakiet serwera aplikacji, webapp, uruchomić skrypty bazy danych, i wiele innych rzeczy; bez łączenia bazy danych jednak), więc jestem stosunkowo pewien, że można to zrobić. Nie wiem, czy możesz to zrobić (łatwo) za pomocą darmowych narzędzi, takich jak Launch4j.

 9
Author: Jonik,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 11:54:51

Oto moje minimalistyczne rozwiązanie tego problemu. Pobrałem instalacje tomcat i MySQL bez instalatora, więc po prostu je rozpakowałem i próbowałem ich działają dobrze. W tym momencie zainstalujesz plik war do tomcat, a odpowiedni schemat do mysql. Więc po skopiowaniu folderów wszystko jest kopiowane. I możesz sprawdzić, jak to działa. Prawdopodobnie możesz zrobić na nich kilka tune-upów, ale dla mnie działają po prostu dobrze out-of-the-box, jak moja aplikacja nie jest tak wymagająca. Poza tym ja pobrano zarówno 32, jak i 64-bitową wersję programów, dzięki czemu można je zainstalować. Użyłem Inno setup do spakowania instalatora. Zasadniczo kopiuje tylko oba foldery wybierając architekturę 32 lub 64 i instaluje oba, tomcat i mysql, jako usługę 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

Aby uruchomić aplikację teraz wystarczy uruchomić / zatrzymać zarejestrowane usługi. zaczynaj.bat

NET START MyApp_MySQL
NET START MyApp_Tomcat
START "" "http://localhost:8080/myapp/" 
Przestań.bat
NET STOP MyApp_MySQL
NET STOP MyApp_Tomcat
Dla mnie to działa dobrze.
  • może możesz dołączyć JRE instalacji, a także powodują, że niektóre comps może tego nie mieć.
  • również jeśli ktoś wie jak sprawdź, czy porty tomcat i mysql są już podjęte, i jak zmień je w pliku conf, proszę powiedz nam.
  • również jeśli możesz sprawdzić IP adres i wpisz go zamiast localhost byłoby świetnie.

Pozdrawiam

Amir

 5
Author: Amir Jamak,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-06-27 08:16:55

Sugerowałbym, abyś użył do tego instalatora Javy.słoik. Ponieważ i tak chciałbyś uruchomić tomcat, nie ma potrzeby umieszczania pliku exe. Zrobiliśmy coś podobnego, programując instalator jar za pomocą API Ant (ant używany programowo).

 1
Author: Mork0075,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-05-13 08:37:01

Możesz użyć do tego BitRock InstallBuilder (kosztuje$). Przykłady takich programów, checkout Alfresco, Liferay itp. instalatory aplikacji, które obejmują Tomcat, MySQL, itp. at BitNami

 0
Author: Daniel Lopez,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-06-17 22:56:35

Lepszym sposobem jest użycie IzPack, jest lepszy od innych, ponieważ jest potrzebny tylko raz i może być używany na dowolnym systemie operacyjnym z tym samym skompilowanym jar.

Osobiście używałem go do pakowania tomcat, mysql i innych warunków wstępnych dla mojej aplikacji internetowej.

Użyłem Launch4J do stworzenia pliku wykonywalnego(.exe) z wygenerowanego przez IzPack pliku JAR.

 0
Author: Alok,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-07-19 19:07:07