How to create a installer using Java that combine tomcat, mysql and war file and come out a final exe?
A web application can be deployed in Tomcat by one of three different approaches: Copy unpacked directory hierarchy into a subdirectory in directory $TOMCAT_HOME/webapps/ . Tomcat will assign a context path to your application based on the subdirectory name you choose. We will use this technique in the build.
You could use any installer, really. I personally have used InnoSetup, which is quite simple, but can still perform almost any task at installation time.
In your case, you probably want to place the Tomcat files somewhere, webapp included. Customize some configuration files and run the MySQL installer in silent mode. All of which is perfectly possible with InnoSetup.
If you need more flexibility, you can look at NSIS, another very simple but very powerful installer app.
The possible options have been largely covered in several questions already, especially:
...and other questions tagged java + installer
Although admittedly some options mentioned in those questions cannot produce self-sufficient .exe installers. If a commercial tool is ok for you, I can personally recommend install4j (costs $); among other things, it can create .exe installers (details about my experiences with it). Or, for a simpler, free tool for producing Windows executables out of Java programs, see Launch4j.
Update of my install4j recommendation, based on this comment by OP:
Yes, the exe installer need to install the tomcat, mysql, web application, and db script all in once. At the end, users only need to start the tomcat and mysql service. Go to browser can access the web application.
With install4j,
I have just done a similar thing with install4j (bundle application server, webapp, run database scripts, and many other things; without bundling the database however), so I'm relatively sure it can be done. I do not know if you can do this (easily) with the free tools such as Launch4j.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With