OS Restrictions
<os>
- Defining OS Restrictions
The <os>
element affects the applicability of the enclosing (parent) element.
It restricts the parent element to applying only when the installation is being done on the specified operating systems or processor architecture.
It can be embedded into the following elements:
- these child elements of the
<packs><pack>
element:<singlefile>
<file>
<fileset>
<executable>
<parsable>
- the
<native>
element - the <laf> element
- as nested element to <panel> or <field> in an UserInputPanel descriptor.
Attributes
Although each attribute is not required, it makes no sense to include <os> unless you specify at least one of family, name or arch. If <os> is specified with none of these, the parent element will be ignored in all installation environments.
Attribute | Description | Required | Values |
---|---|---|---|
| The parent element will only be applied when installing on this OS Family | no | "unix" | "windows" | "mac" |
| The parent element will only be applied when installing on this exact OS name | no | Valid OS name defined by the OS vendor, for example "Windows XP" or "Linux" |
| The parent element will only be applied when installing on this exact OS version (see the Java os.version system property) | no | Valid OS version |
| The parent element will only be applied when installing on this system architecture/processor (see the Java os.arch system property) | no | Valid OS architecture |
A List of known OS names and architectures can be found here
Using OS Restrictions
The following example says that the <executable>
element only applies when the installation is being done on a unix-like operating system.
Example:
<packs> (...) <pack name="Core" required="yes"> (...) <executable targetfile="$INSTALL_PATH/bin/compile" stage="never"> <os family="unix"/> </executable> (...) </pack> (...) </packs>
Note that it's possible to add multiple os restrictions for the same element.
Example:
<packs> (...) <pack name="Core" required="yes"> (...) <executable targetfile="$INSTALL_PATH/bin/compile" stage="never"> <os family="mac"/> <os family="linux"/> </executable> (...) </pack> (...) </packs>