1. Make a Java class and package it into a JAR:
IzPack can execute Java classes provided by third party developers. Some reasons to extend IzPack's functionality this way might be to control the writing of configuration files during installation or creating a custom log. IzPack can display output from these classes via a ProcessPanel, or you could create a custom (possibly hidden) panel that calls your Java code. This page shows how to use a custom Java class with a ProcessPanel.
An external Java class must have a run() method with some parameters. This is not (NOT!) the run() method from the java.lang.Runnable interface. Nor is this codified as an interface in the IzPack javadoc. Instead, this would seem to be a magic method signature that is otherwise undocumented.