I have an application for which we use IzPack to create the installer. The installer is working fine in its current state, however, I need to add functionality that enables it to check whether an existing version of the software has been installed.
I understand IzPack supports this out of the box using its CheckedHelloPanel
, unfortunately that only works for Windows, as it appears to depend on the windows registry.
Is there a way to configure IzPack such that it is able to detect existing installations?
I need to be able to detect whether there is one and merely display a message notifying the user... Bonus points for how to give the user the option to trigger the uninstaller of the existing installation.
- Assume that the software will only be installed using the new installer
- IzPack only: please do not suggest alternatives, as we cannot change that now
- If you suggest using
<validator>
, please include a code sample of the validator class, because I have considered this, but don't know where to start
I wrote this to allow my application to be installed over the jboss install.
Then the installer has a section like
The bit at the end makes sure izpack adds it to the installer jar.
It only works on Windows, because only Windows has a registry. However, in Linux apps traditionally don't have customized unified locations. For example your run scripts would go in a bin folder, your binaries would go in /opt, your documentation would go in /var, etc. The idea that there's one single "your-app" directory that is selected by the user and contains everything related to the application is a Windows concept.
So anyway, the way to solve this in Linux is to install the various parts of your app in non-user-defined locations. That way you know exactly where your app would be if it was already installed.