Wie erstellt man ein Installationsprogramm mit Java, das Tomcat, Mysql und War-Datei kombiniert und eine endgültige Exe-Datei erstellt?
Vielen Dank für Ihre Empfehlung InnoSetup ist gut und einfach zu bedienen.
Wie erstellt man ein Installationsprogramm mit Java, das Tomcat, Mysql und War-Datei kombiniert und eine endgültige Exe-Datei erstellt?
Sie können eigentlich jedes Installationsprogramm verwenden. Ich persönlich habe verwendet InnoSetup die recht einfach ist, aber dennoch fast jede Aufgabe bei der Installation ausführen kann.
In Ihrem Fall möchten Sie wahrscheinlich die Tomcat-Dateien irgendwo ablegen, einschließlich der Webapp. Passen Sie einige Konfigurationsdateien an und führen Sie das MySQL-Installationsprogramm im Silent-Modus aus. All das ist mit InnoSetup problemlos möglich.
Wenn Sie mehr Flexibilität benötigen, können Sie sich mit NSIS , eine weitere sehr einfache, aber sehr leistungsfähige Installationsanwendung.
Jemand hat eine Folgefrage dazu gestellt, wie man dies mit Inno Setup macht: stackoverflow.com/questions/938925/
Die möglichen Optionen wurden bereits weitgehend in mehreren Fragen behandelt, insbesondere:
...und andere Fragen tagged java + installer
Zugegebenermaßen können einige der in diesen Fragen genannten Optionen keine eigenständigen .exe-Installationsprogramme erstellen. Wenn ein kommerzielles Tool für Sie in Ordnung ist, kann ich persönlich Folgendes empfehlen installieren4j (kostet $); es kann unter anderem .exe-Installationsprogramme erstellen ( Details über meine Erfahrungen mit ihr ). Ein einfacheres, kostenloses Tool zur Erstellung von ausführbaren Windows-Dateien aus Java-Programmen finden Sie unter Start4j .
Update meiner install4j-Empfehlung, basierend auf diesem Kommentar von OP:
Ja, der Exe-Installer muss die Tomcat, mysql, Webanwendung und db Skript alle auf einmal installieren. Am Ende müssen die Benutzer nur noch den Tomcat und den mysql-Dienst starten. Der Browser kann auf die Webanwendung zugreifen.
Mit install4j,
Ich habe gerade etwas Ähnliches mit install4j gemacht (Anwendungsserver, Webapp, Datenbankskripte und viele andere Dinge bündeln; allerdings ohne die Datenbank zu bündeln), daher bin ich mir relativ sicher, dass es machbar ist. Ich weiß nicht, ob man das (einfach) mit den freien Tools wie Launch4j machen kann.
-1 Dies ist in keinem der oben genannten Punkte enthalten. Er spricht eindeutig von der Installation von Tomcat und Mysql mit einer WAR, nicht von einer Java-Anwendung, sondern von einer Java-Webapp.
Nun, das ist bis zu einem gewissen Grad abgedeckt, denn mit install4j können Sie zum Beispiel Tomcat, MySQL, WAR-Dateien oder was auch immer Sie wünschen, einbinden.
Ich meine, wenn wir über die Erstellung von .exe-Installationsprogrammen für Java-Software sprechen, sind die möglichen Werkzeuge ohnehin dieselben, egal ob es sich um eine Webanwendung handelt oder nicht.
Hier ist meine minimalistische Lösung für dieses Problem. Ich habe Tomcat und MySQL-Installationen ohne Installer heruntergeladen, also habe ich sie einfach entpackt und ausprobiert, sie funktionieren gut. In diesem Moment installieren Sie die war-Datei in den Tomcat und das entsprechende Schema in den MySQL. Wenn Sie also die Ordner kopieren, wird alles kopiert. Und Sie können testen, wie es funktioniert. Wahrscheinlich kann man noch ein paar Anpassungen vornehmen, aber bei mir funktioniert es sofort gut, da meine Anwendung nicht so anspruchsvoll ist. Außerdem habe ich sowohl die 32- als auch die 64-Bit-Version der Programme heruntergeladen, so dass sie beide installiert werden können. Ich habe Inno setup verwendet, um das Installationsprogramm zu packen. Im Grunde kopiert es nur beide Ordner, indem es die 32- oder 64-Architektur auswählt, und installiert beide, Tomcat und Mysql, als Windows-Dienst.
[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
Um Ihre Anwendung auszuführen, müssen Sie jetzt nur noch die registrierten Dienste starten/stoppen. 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
Bei mir funktioniert das sehr gut.
Mit freundlichen Grüßen
Amir
Ich würde vorschlagen, dass Sie dafür Java verwenden, eine installer.jar. Da Sie den Tomcat ohnehin ausführen möchten, ist es nicht nötig, eine exe-Datei einzufügen. Wir haben etwas Ähnliches gemacht, indem wir einen jar-Installer mit Hilfe der Ant-API (Ant wird programmatisch verwendet) programmiert haben.
Laden Sie das Ant jar von der Apache Website herunter und spielen Sie ein wenig mit der API. Anstatt vielleicht den XML-Befehl <copy> zu verwenden, benutzen Sie eine Klasse Copy und führen einige Methoden aus.
Oh, ich verstehe, was Sie meinen. Sie installieren es also, wenn Sie kompilieren, im Gegensatz zur Bereitstellung einer Installation auf einem Client/Server-Rechner?
Sie können verwenden BitRock InstallBuilder für sie (kostet $). Beispiele für solche Programme finden Sie unter Alfresco, Liferay usw. Anwendungsinstaller, die Tomcat, MySQL usw. enthalten, finden Sie unter BitNami
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.
0 Stimmen
Glauben Sie, Sie könnten ein bisschen genauer sein, wollen Sie die Exe zu Tomcat und mysql auf dem System zu installieren oder wollen Sie es eine Exe, die sowohl Tomcat und mysql als Daemons oder etwas ausgeführt wird sein?
0 Stimmen
Ja, das exe-Installationsprogramm muss den Tomcat, Mysql, die Webanwendung und das DB-Skript alle auf einmal installieren. Am Ende müssen die Benutzer nur noch den Tomcat- und Mysql-Dienst starten. Mit dem Browser können Sie auf die Webanwendung zugreifen.
0 Stimmen
Kann bitte jemand den Titel der Frage ein wenig aussagekräftiger gestalten? ("Wie erstelle ich ein Java-Webapp-Installationsprogramm (.exe), das Tomcat und MySQL enthält?", oder so ähnlich). Vielen Dank!