Depends on your experience could you recommend something? I've use izpack, and it's very nice tool, is there any other, better tool?
for Windows there's AdvancedInstaller, it was very easy to use and created standard .msi files. It has some extra features for Java installs.
We are using IZPack for quit a while and are very satisfied. You can build installers for nearly all platforms and it integrates well with your build tools like maven.
hi there,
sun has come out with a new version : https://openinstaller.dev.java.net/ -- this is open source and sun will be using this to launch most of their server side products/projects.
Since no one has mentioned it yet, I'll go ahead and plug InstallAnywhere. We use it at work for all our products and I can't say we've really had any problems with it (that weren't caused by mistakes in our own scripts at least!). It's a cross-platform GUI installer which is a nice feature if you expect to have different desktop environments in play, and it also supports console installers, silent installs, etc.
I googled around a bit and here's a review of InstallAnywhere you might find helpful. It's from a first time user, rather than a publication or thinly veiled press release, which probably makes it less biased and a better indicator of what your experience using it might be like.
I would like to suggest our cross platform installation tool, BitRock InstallBuilder. Although it is not Java-based, it is commonly used to package Java applications. It can be easily integrated with Ant and you can build Windows installers from Unix/Linux/Mac and the other way around. Because the generated installers are native, they do not require a self-extraction step or bundling a JRE, which means smaller installers and saves you some headaches. I also would like to mention we have free licenses for open source projects
I'd suggest InstallJammer. It's not written in Java, but it's cross-platform and provides capabilities to handle Java-based applications during installation. Being that it's not based on Java, it doesn't actually require any version of the JRE to be installed on the target system, which is kind of nice, but you can still use actions within your installer to locate versions of the JRE for your application. The installers are small and completely self-contained.
It's also free and open source, if that matters to you. It does to some. :)
I know you said installer, but I think it is worth mentioning JSmooth. It's a launcher that generates an exe file for Windows. The reason it is worth mentioning is because it performs the job of location a JVM and can also download and install it for the user. This is often left up to the installer to do. Doing it dynamically like this is nicer though since Java gets updated quite often and JSmooth will always use the latest version JVM it can find (within your parameters).