IzPack

IzPack

Cross platform Java installer builder

Description

Shipping a Java application means an MSI for Windows, a dmg for macOS, a deb and an rpm for Linux — four scripts, four signing dances, and a change to the install path that has to be made in every one of them. IzPack goes the other way: one XML description produces a single executable JAR that installs the application on all three platforms.

That XML is a description of the wizard: which panels appear (licence, target path, component selection, shortcuts, progress), how the payload splits into packs, which packs are ticked by default and which show up only under a condition. Build it once from Ant, Maven or the command line and the output is that JAR.

Features



One config, one installer: the XML describes the flow and the resulting executable JAR behaves the same on Windows, macOS and Linux, so there is no second and third packaging script to keep in sync.

Composable panels: licence, target path, pack selection, shortcut creation, user input forms, progress and finish panels arranged as you need them — and a panel written in Java when the built-in ones fall short.

Packs and conditions: split the payload into packs marked required, preselected or optional, and gate a pack on the operating system, on something already installed, or on what the user chose two panels earlier.

Custom actions: hook Java code before or after installation, or after a particular pack, for registry writes, service registration and generated config files.

Automated installation: a manual run can record its answers into a file, and later machines install unattended from it — which is what makes it usable for fleet deployment.

Fits the build: an Ant task and a Maven plugin mean packaging runs straight after compilation, with no glue script in CI.