The IzPack native launcher will first check for a JRE on the target system. If one is found, then it will launch the installer. If no JRE can be found, then it will help the user in installing one either from the internet or from a bundled one. To sum-up, the IzPack native launcher will allow your users to install your software even if they don't have a JRE at first sight.The IzPack native launcher is a .exe file that looks for a file calledlauncher.ini
in the current directory. Thelauncher.ini
specifies:Notes about IzPack Launcher and possible alternatives
- which jar file contains the IzPack installer.
- The setup .exe or script to run to install the JRE.
Unfortunately, this does not meet our needs, since we want to use a custom JRE that includes packages like Java3D etc. For us to use this, we would need to create a JRE setup script.- launch4j
- Can include a JRE, but really only for one application? We need to add multiple apps to the Start Menu.
The way we do this is based on Notes about IzPack Launcher and possible alternatives.
$PTII/adm/gen-X.Y/jre
svn co http://svn.berlios.de/svnroot/repos/izpack/izpack-src/trunk
c:\cxh\ptII\adm\gen-6.0\ptII6_0-devel_setup.xml \ -b c:\cxh\ptII\adm\gen-6.0 \ -o c:\cxh\ptII\adm\gen-6.0\ptII6_0-devel_setup.jar \ -h c:\cxh\src\izpack\trunkWhere
c:\cxh\ptII\adm\gen-6.0\ptII6_0-devel_setup.xml
install.xml
-b c:\cxh\ptII\adm\gen-6.0
-o c:\cxh\ptII\adm\gen-6.0\ptII6_0-devel_setup.jar
-h c:\cxh\src\izpack\trunk
No valid IzPack home directory found
-> Fatal error : No valid IzPack home directory found java.lang.IllegalArgumentException: No valid IzPack home directory found at com.izforge.izpack.compiler.CompilerConfig.resolveIzPackHome(CompilerConfig.java:1908) at com.izforge.izpack.compiler.CompilerConfig.main(CompilerConfig.java:1835) at com.izforge.izpack.compiler.Compiler.main(Compiler.java:622)The solution is to copy
ShellLink.dll
cp c:/Pro*/izpack/bin/native/izpack/ShellLink.dll izpack
Uninstaller not found: c:\cxh\src\izpack\trunk\lib\uninstaller.jar
-> Fatal error : c:\cxh\ptII\adm\gen-6.0\ptII6_0_devel_setup.xml:18: Uninstaller not found: c:\cxh\src\izpack\trunk\lib\uninstaller.jar com.izforge.izpack.compiler.CompilerException: c:\cxh\ptII\adm\gen-6.0\ptII6_0_devel_setup.xml:18: Uninstaller not found: c:\cxh\src\izpack\trunk\lib\uninstaller.jar at com.izforge.izpack.compiler.CompilerConfig.parseError(CompilerConfig.java:1523) at com.izforge.izpack.compiler.CompilerConfig.findIzPackResource(CompilerConfig.java:1488) at com.izforge.izpack.compiler.CompilerConfig.addInfo(CompilerConfig.java:1199) at com.izforge.izpack.compiler.CompilerConfig.executeCompiler(CompilerConfig.java:316) at com.izforge.izpack.compiler.CompilerConfig.main(CompilerConfig.java:1854) at com.izforge.izpack.compiler.Compiler.main(Compiler.java:622)Solution, use ant:
cd trunk/src ant distI'm not sure how to do this from Eclipse. Eclipse can run ant but the setup instructions have us include files from
src/lib
,
not src
.
OsVersion
missing when I ran
java -version uninstaller.jarThe solution was to check out the 3.9 branch and rebuild:
svn co http://svn.berlios.de/svnroot/repos/izpack/izpack-src/branches/branch-3.9/ cd 3.9.0-M1/src antI also had to edit
build.xml
so that we included izpack/util/os/*.class as per The Unistaller.jar is not working
It turns out that part of the install process updates uninstaller.jar
. So, I had to copy the uninstaller.jar
file
over to the installed version of IzPack - copying uninstaller.jar
to the installed application will not do it.
The solution is to use the ProcessPanel and define our own class that does the extraction.
Cannot find Resource ProcessPanel.Spec.xml for language eng
com.izforge.izpack.installer.ResourceNotFoundException: Can not find Resource ProcessPanel.Spec.xml for language eng at com.izforge.izpack.installer.ResourceManager.getLanguageResourceString(ResourceManager.java:137) at com.izforge.izpack.installer.ResourceManager.getInputStream(ResourceManager.java:154) at com.izforge.izpack.installer.ProcessPanelWorker.readSpec(ProcessPanelWorker.java:109) at com.izforge.izpack.installer.ProcessPanelWorker.run(ProcessPanelWorker.java:233) at java.lang.Thread.run(Unknown Source) Error parsing XML specification for processing.Solution:
<res src="ProcessPanel.Spec.xml" id="ProcessPanel.Spec.xml"/>
-u
command:
jar -fu c:/Program\ Files/IzPack/lib/installer.jar ExtractJarFile.classWe also have to update the
standalone-compiler.jar
file
with the new installer.jar
file. My solution was to rebuild
izPack and run
cd izpack/trunk/src rm ../lib/installer.jar ant build.installer jar -uf ../lib/installer.jar ExtractJarFile.class ant build.standalone-compiler cp ../lib/standalone-compiler.jar ../../izpack3.9.0/lib/standalone-compiler.jarHowever, a better solution is to use
<jar src="ExtractJarFile.jar">
in the
install.xml
file
Error accessing processing class
src/lib/com/izforge/izpack/installer/ProcessPanelWorker.java
so that it printed the exception, which was
Class com.izforge.izpack.installer.ProcessPanelWorker$ExecutableClass
can not access a member of class ExtractJarFile with modifiers "private".
Last Updated: $Date: 2006/10/26 22:15:45 $