This tutorial is provides a step by step creation of an IzPack Installer. You will be creating a simple swing based application.
Table of Contents |
---|
Object
Create an IzPack Installer using following tools: IzPack, Ant, Bash for GNU/Linux and Microsoft Windows 7.
IzPack on GNU/Linux
Step 1. - Assumptions
- A Debian based GNU/Linux Distribution (recommended: Xubutu)
- Oracle JDK (used in tutorial: Java SE Development Kit 7u21)
- Eclipse ( Use this instructions for installation)
- Apache Ant
- IzPack Library (Download the installer for IzPack 4.3.5)
...
- Start Eclipse and create a new Java Project in it.
- File -> New -> Java Project.
- Name your project (for example: IzPackInstaller HelloWorldInstaller).
- JRE Settings in Eclipse should be intakt.
...
- Make sure you're in your new created project folder.
- Go to the source folder (src).
- Create a Java Class (name used in tutorial: HelloWorld).
- Paste the source code block down below (name: A Simple Swing Based HelloWorld Application) to your new created class. This source code is a simple swing based dialog with a PushButton.
- Compile and run it.
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.SwingUtilities; public class HelloWorld extends JFrame { public HelloWorld() { initUI(); } public final void initUI() { JPanel panel = new JPanel(); getContentPane().add(panel); panel.setLayout(null); JButton quitButton = new JButton("QuitHello World"); quitButton.setBounds(50, 60, 80120, 30); quitButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent event) { System.exit(0); } }); panel.add(quitButton); setTitle("QuitHello buttonWorld"); setSize(300, 200); setLocationRelativeTo(null); setDefaultCloseOperation(EXIT_ON_CLOSE); } public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { public void run() { HelloWorld ex = new HelloWorld(); ex.setVisible(true); } }); } } |
This dialog should popup on the screen:
Step 4. - Create An Ant Script
- Highlight your project folder .Execute and execute the shortkey CTRL+N.
- Go to XML folder and choose XML File.
- Name this XML File (build.xml)
- Paste the xml code down below to build.xml
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
<?xml version="1.0"?> <project name="MyTestProjectHelloWorld" default="build" basedir="."> <property name="src.dir" location="src" /> <property name="build.dir" location="bin" /> <target name="clean"> <delete dir="${build.dir}" /> </target> <target name="makedir"> <mkdir dir="${build.dir}" /> </target> <target name="build" depends="clean, makedir"> <javac srcdir="${src.dir}" destdir="${build.dir}"/> </target> </project> |
This build.xml is a standard build ant script. Right now it consists of two properties (src.dir, build.dir) and three targets (clean, makedir, build). For the future steps import this ant script to your Ant View in Eclipse.
Step 5. - Import IzPack
In this step the recently downloaded IzPack 4.3.5 Jar File will be imported to the project.
- Run the IzPack jar file (java -jar /path/to/IzPack/Jar)
- Follow the installation instructions. Remember the directory where the IzPack Installer Framework has been installed (installation path used in tutorial: /home/user/Desktop/IzPack).
- Create two directories. The first directory for the IzPack setting file for the creational process and the second directory for the created generated installer (used in tutorial: /home/user/Desktop/Files4Installer and /home/user/Desktop/HelloWorld).
...
In the Files4Installer directory create an xml file (name of the file has to be: install.xml) and a directory named images. In this directory you should put the images used by IzPack for the Istaller. In this tutorial two images were used. Download these two images here (Image 1, Image 2) and name it helloworld_image1.png and helloworld_image2.png or create your own and put them into the images derectory. If you create your own images the size for the image 1 and image 2 should be 500x200 and 125x400 pixels, respectively.
...
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
<?xml version="1.0" encoding="iso-8859-1" standalone="yes" ?> <!-- A sample installation file. Use it as a base for your own installers :-) To compile it : - go in the bin directory where you installed IzPack - call "compile ../sample/install.xml -b ../sample" --> <installation version="1.0"> <!--<info> <appname>Hello The info section. The meaning of the tags should be natural ... --> <info> <appname>NovaTec inspectIT<World Application</appname> <appversion>1.4<0</appversion> <authors> <author name="NovaTecYour Givenname and Lastname" email="info@novatecgivenname.lastname@hello-gmbhworld.org"/> </authors> <url>http://www.novatechello-gmbhworld.de/</url> </info> <!-- The gui preferences indication. Sets the installer window to 640x480. It will not be able to change the size. --> <guiprefs width="640" height="480" resizable="yes"/> <!-- The locale section. Asks here to include the English and French langpacks. --> <locale> <langpack iso3="eng"/> <langpack iso3="deu"/> </locale> <!-- The resources section. The ids must be these ones if you want to use the LicencePanel and/or the InfoPanel. --> <resources> <resources> <res id="installer.langsel.img" src="inspectitimages/helloworld_logoimage1.png" /> <res id="Installer.image" src="novatecimages/helloworld_logo2image2.png" /> <res id="LicencePanel.licence" src="Licence.txt"/> <res id="InfoPanel.info" src="Readme.txt"/> <res src="shortcutSpec.xml" id="Win_shortcutSpec.xml"/> <res src="Unix_shortcutSpec.xml" id="Unix_shortcutSpec.xml"/> </resources> <!-- The panels section. We indicate here which panels we want to use. The order will be respected. --> <panels> <panel classname="HelloPanel"/> <panel classname="InfoPanel"/> <panel classname="LicencePanel"/> <panel classname="TargetPanel"/> <panel classname="PacksPanel"/> <panel classname="InstallPanel"/> <panel classname="ShortcutPanel"/> <panel classname="FinishPanel"/> </panels> <!-- (Required for Windows only) <native type="izpack" name="ShellLink.dll"/> --> <!-- The packs section. We specify here our packs. --> <packs> <packs> <pack name="InspectITHelloWorld" required="yes"> <description>inspectIT files<<description>Hello World Application Runnables</description> <file src="/home/maxuser/workspace/MyTEstProjectHelloWorldInstaller/bin/MyTestClassHelloWorld.class" targetdir="$INSTALL_PATH"/> <file src="/home/maxuser/workspace/MyTEstProjectHelloWorldInstaller/bin/MyTestClass$1HelloWorld$1.class" targetdir="$INSTALL_PATH"/> <file src="/home/maxuser/workspace/MyTEstProjectHelloWorldInstaller/bin/MyTestClass$2HelloWorld$2.class" targetdir="$INSTALL_PATH"/> </pack> </packs> </installation> |
TODO: Explain install.xml
Info | ||||
---|---|---|---|---|
| ||||
|
Note |
---|
Common mistakes:
|
Next lines of xml code are the hearth of the creation of an installer with aid of IzPack Framework. Paste the xml code down below in the build.xml right after the build target.
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
<taskdef name="mkinstaller" classpath="/home/user/Desktop/IzPack/lib/standalone-compiler.jar" classname="com.izforge.izpack.ant.IzPackTask"/> <target name="mk_installer" depends="build"> <mkinstaller input="${install.file}" output="/home/user/Desktop/HelloWorld/HelloWorld_installer.jar" basedir="/home/user/Desktop/Files4Installer/"/> </target> |
Info | ||||
---|---|---|---|---|
| ||||
|
Note |
---|
Common mistakes:
|
Create two files in this directory /home/user/Desktop/Files4Installer.
- Licence.txt
- Readme.txt
These files can be empty for now or you put some content in it for better understanding.
Step 6. - Hello World
If you reached this section and done all the pastings and installations in the right order then right now you can build your first installer containing the compiled source code of the HelloWorld application. In the Ant View of Eclipse you can find the new created target named mk_installer and by executing it the following steps should be done one by one: source code compilation -> taking compiled source code and creating an installer by using a defined directory (used in tutorial: /home/user/Desktop/Files4Installer) -> placing the created jar file in a specified directory (used in tutorial: /home/user/Desktop/HelloWorld).
IzPack on Microsoft Windows 7 (TODO)