Setting Default Installation Directories

Setting Default Installation Directories

You can set a list of default installation directories depending on the target installation platform.

When the compiled installer is executed, IzPack chooses the default that matches the platform.

The prefix: TargetPanel.dir is used to specify variables related to setting the default installation directory.

IzPack recognizes this as a built-in variable which can be user-modified.

For example, change the resources to variables:

Default path definition in IzPack 4.x
<resources> <res id="TargetPanel.dir.windows" src="@{izpack.dir.app}/installpath.windows.txt"/> <res id="TargetPanel.dir.unix" src="@{izpack.dir.app}/installpath.unix.txt"/> </resources>

to

Default path definition in IzPack 5.x
<variables> <variable name="TargetPanel.dir.windows" value="C:/MyApp"/> <variable name="TargetPanel.dir.unix" value="/usr/local/myapp"/> </variables>

This uses the following variable search order to determine the default directory to display:

  1. TargetPanel.dir.<platform symbolic name> e.g. TargetPanel.dir.windows_7

  2. TargetPanel.dir.<platform name> e.g. TargetPanel.dir.windows

  3. TargetPanel.dir.<parent platform> e.g. given platform "FEDORA_LINUX" looks for TargetPanel.dir.linux, followed by TargetPanel.dir.unix

  4. TargetPanel.dir

  5. DEFAULT_INSTALL_PATH

  6. SYSTEM_user_dir corresponds to the system property "user.dir"

Available platforms can be found in the class Platforms. The names are the lowercase versions of those defined.
Allowed names include:

  • aix

  • debian_linux

  • fedora_linux

  • freebsd

  • hp_ux

  • linux

  • mac

  • mac_osx

  • mandrake_linux

  • mandriva_linux

  • os_2

  • red_hat_linux

  • sunos

  • sunos_x86

  • sunos_sparc

  • suse_linux

  • unix

  • ubuntu_linux

  • windows

  • windows_7

  • windows_8

  • windows_xp

  • windows_2003

  • windows_vista

The DEFAULT_INSTALL_PATH variable is initialised to <PARENT_DIRECTORY>/$APP_NAME where <PARENT_DIRECTORY> is determined by:

OS

Parent Directory

OS

Parent Directory

Windows

ProgramFiles environment variable

Mac OSX

/Applications

Others

/usr/local/ if writeable, or System.getProperty("user.home") if not

Changes from 4.3.6

The range of values the variable can have has been significantly enhanced, as per IZPACK-829.

Changes from earlier versions

Prior to 4.3.6, resources were used rather than variables. Resources were searched for with the following names

  • "TargetPanel.dir." + lower case version of System.getProperty("os.name"), with any spaces replace with underscores

  • "TargetPanel.dir." + <platform> where platform is one of ("windows", "mac", "unix")

  • "TargetPanel.dir"

IZPACK-798 changed the above to use variables instead of text files, following the same naming convention.