16 Stimmen

Wie erstellt man ein Java-Webapp-Installationsprogramm (.exe), das Tomcat und MySQL enthält?"

Wie erstellt man ein Installationsprogramm mit Java, das Tomcat, Mysql und War-Datei kombiniert und eine endgültige Exe-Datei erstellt?

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!

20voto

Gerco Dries Punkte 6590

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.

1 Stimmen

Vielen Dank für Ihre Empfehlung InnoSetup ist gut und einfach zu bedienen.

0 Stimmen

Jemand hat eine Folgefrage dazu gestellt, wie man dies mit Inno Setup macht: stackoverflow.com/questions/938925/

9voto

Jonik Punkte 77106

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,

  • Sie können Tomcat, MySQL und Ihre Webanwendung problemlos bündeln
  • Sie können die Dienste auch automatisch vom Installationsprogramm aus starten (oder es den Benutzern überlassen, wie Sie vorschlagen)
  • Wenn Sie möchten, kann das Installationsprogramm sogar direkt den Browser starten und ihn auf Ihre Webanwendung verweisen :-)

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.

0 Stimmen

-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.

0 Stimmen

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.

0 Stimmen

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.

6voto

Amir Jamak Punkte 61

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.

  • Vielleicht können Sie auch JRE Installation mit einbeziehen, denn einige Kompositionen haben sie vielleicht nicht.
  • Und wenn jemand weiß, wie man ob die Ports von Tomcat und Mysql bereits belegt sind, und wie man wie man sie in der conf-Datei ändert, bitte uns mitteilen.
  • Auch wenn Sie die IP Adresse überprüfen und diese anstelle von localhost eingeben können, wäre das großartig.

Mit freundlichen Grüßen

Amir

1voto

Mork0075 Punkte 5825

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.

0 Stimmen

Ich würde gerne mehr darüber erfahren und auch darüber, wie es gemacht wird.

0 Stimmen

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.

0 Stimmen

Oh, ich verstehe, was Sie meinen. Sie installieren es also, wenn Sie kompilieren, im Gegensatz zur Bereitstellung einer Installation auf einem Client/Server-Rechner?

0voto

Daniel Lopez Punkte 3182

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.com

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.

Powered by:

X