I am looking for a recommendation on an installer program. The installer needs to support mulitple OS's - Solaris, Linux and Windows. I have three build machines each running one of the OS's. Currently using the same code base - JAVA and C/C++ for all three.
IzPack is a an open source software installer generator. All you need is a JRE on the target platform.
Does it need to be a client-based installer for wide distribution, or just intranet? For corporate LANs, sometimes setting up a Java Webstart page is the best solution; the customers always have access, they can make desktop shortcuts to the launcher to run just like a standard application, and you have absolute control for pushing updates.
You can take a look at BitRock InstallBuilder It supports all the platforms you mention, and it does not depend on Java (though you can use it to install Java programs, in fact many of our customers use it for that, including Sun Microsystems :)
Maybe is my personal opinion but I think that the installer is probably the only thing that you may want to keep platform specific and here is why:
- it is good to integrate with platform specific deployment systems like: RPM or DEB on Linux, DMG on OS X or MSI under Windows. By using them and allowing both UI and silent installation you will easy the installation of the product for individuals and also for enterprise environments - where it's common to push the installations to the clients.
- you can add move the configuration screens outside the installer and trigger them first time when the user runs your application
- also do not forget to minimize installer complexity - each "feature" you add will cost you more specially on QA.