Change Log

 

Release 5.1.13   |    2014-08-22

New features:

  • Implemented required V2 code signing for Mac OS X 10.9.5 and Mac OS X 10.10
  • install4j IDE and command line compiler can now run with Java 8

Bugs fixed:

  • "Text field with format mask" form component: An exception could be thrown when the form was displayed and the initial content was empty and invalid
  • File and directory chooser form components: "Initial browser directory" property was only evaluated at startup and not when the screen was initialized
  • Fixed exception during project report
  • If -c is passed to an installer in addition to -h, show the help on the terminal, even if an X-server is available
  • Unix/Linux installers: Removed warning message on the terminal when the installer name contains parentheses
  • "Write to a text file" action: Created files were not deleted during a rollback
  • Linux DEB archives: Fixed "bad quality" warning due to lintian bug on ubuntu
  • Fixed problems with non-default code page characters in class path
  • Mac OS X: Elevated "Run executable or batch file" action did not always run as root user
 

Release 5.1.12   |    2014-06-07

New features:

  • "Combo box", "Drop-down list" and "List" form components: The "Selection change script" property now has a "selectedIndex" parameter in addition to the "selectedItem" parameter.

Bugs fixed:

  • Linux/Unix installers: Scan classpath entries were broken if GNU grep 2.19 was used
  • Linux/Unix installers: Unpacking the bundled jre did not work on some UNIX systems
  • When creating a custom JRE bundle in install4j, signed JARs were packed as well. This caused an error at runtime.
  • Windows services: Fixed a problem where the service would not shut down
  • Linux DEB and RPM archives did not work correctly with recent JRE bundles
  • DEB archive compilation was slow
  • "Run executable or batch file" action: When using redirection, the "Show console window" property may not be selected
 

Release 5.1.11   |    2014-03-20

New features:

  • Java 8 JRE bundles. Older versions of install4j will not offer these and updated JRE bundles anymore.
  • "Load a response file" action: Added a "Overwrite already defined variables" property

Bugs fixed:

  • "Welcome" screen: "Alert for update" had no effect if the installation directory was changed in a script before the screen was shown
  • Fixed problems with non-default code page characters in installation directory
  • Mac OS X: JRE installation was not found for the current Java release
  • --disable-signing command line argument for install4jc was not recognized
  • Fixed a rare problem when invoking the uninstaller from the Windows control panel
  • The "sys.platform" compiler variable could not be used in "URL for updates.xml" text field on the "Installer->Auto-Update Options" step
 

Release 5.1.10   |    2014-02-19

Bugs fixed:

  • Windows installers: Fixed problems with characters in the installation directory that are not in the default code page
 

Release 5.1.9   |    2014-01-30

Bugs fixed:

  • Regression in 5.1.8: Installed JREs could not be found on Windows anymore under some circumstances
  • Unix services: After terminating a service with -SIGKILL, the unix daemon did not handle the status and stop command correctly
  • Mac OS X Java 7 launchers: The minimum version of Mac OS X was set to 10.7 instead of 10.7.3 as required by Java 7
  • Mac OS X Java 7 launchers: The generated VM options file defined in the launcher wizard was not created under Contents/vmoptions.txt
 

Release 5.1.8   |    2014-01-13

Bugs fixed:

  • Critical: Unix installers could delete the working directory if a CDPATH environment variable was defined and did not include the current directory
  • Wide character support in Windows launchers. This solves problems with characters from outside the default code page in user home directory names
  • Mac OS X: When Java 7 was used on an unsupported OS version (10.6 or lower), no warning was displayed and the installer would crash
  • Mac OS X: JRE download progress was not always correct
  • Mac OS X: environment variable replacement in launcher properties like class path and VM parameters did not work
  • Mac OS X: .vmoptions file was placed before default VM parameters which prevented overriding
  • Mac OS X: the installer variable sys.preferredJre did not include the trailing "Contents/Home/jre" directories
  • Code signing: Compilation did not abort when counter signing failed
  • If the system property "install4j.noLoggingFix" is set, do not initialize the logging subsystem of the JRE for launchers
  • "Directory chooser" and "File chooser" form components: If the file or directory name was empty, there was a space character in the text field
  • "Installation type" screen: Component folder selections were ignored in in the installer
  • "Change cancel button state" action: Fixed NPE in unattended mode
  • "Directory chooser" form component: Fixed NPE when pressing enter
 

Release 5.1.7   |    2013-11-11

New features:

  • Launchers: expand launcher variables and environment variables in the configured working directory of a launcher
  • Mac OS X: Implemented Java splash screen functionality for Oracle VMs
  • Added the HTTP header "X-Client-Application: install4j" for all HTTP request made by install4j
  • "Install a service" action: Added a "Windows Custom Display Name" property for setting a different display name than the name of the launcher

Bugs fixed:

  • Spaces in the value of the -dir command line arguments to an installer were not trimmed
  • Add-on installers did not certain files referenced by screens, actions and form components, such as icon images
  • Custom code was not on the classpath for elevated actions in the startup node of the uninstaller
  • Custom icon configuration for launchers and installer applications: If compiler variables were used in the file name, the size was shown as "unknown"
  • If a code signing certificate file did not exist, the compiler reported that the password was wrong
  • Form components with leading labels could not be hidden completely, they always took up some space
  • The tree in the directory selector scrolled when a directory was selected
  • Version numbers with number parts larger than Integer.MAX_VALUE could not be compared by install4j
  • Long file names in JRE bundles were not supported on some platforms
  • An in-process installer application that was canceled could not be called again
  • Mac OS X: The order of the custom code class path entries was not preserved at runtime
  • Fixed warning when description was not specified for DEB archives
  • Fixed formatting of DEB archive description
  • Mac OS X 10.8+: "Add a startup executable" action did not work anymore
  • Fixed wrong height of progress bar on Windows 2012
  • Could not use Context#gotoScreen in startup node
  • Fixed a crash with the no_NO_NY locale
  • Linux RPM and DEB archives: Files were removed before the custom pre-uninstall script
  • Mac OS X: Forbidden characters were not replaced for the bundle name
  • RPM archives did not work on Fedora 19
  • Launchers with an install4j splash screen showed the splash screen again when invoking an in-process installer application
  • Instances of InstallationComponentSetup could not be modified from elevated actions
  • "Wait for HTTP port" action did not replace installer variables
  • File chooser component: File filter was not selected by default, installer variables were not replaced for file filter name and extensions
  • The console screen change handler that can be configured for the entire installer application was not called for customizable screens
  • Custom code: Associated actions and screens could not be loaded if the bean was added on the Installer->Custom code & Resources tab
  • "Show URL" action: No error was displayed if an URL could not be shown
 

Release 5.1.6   |    2013-06-20

New features:

  • "Directory selection" screen and "Directory chooser" form component: Added a "Standard validation" property that can be used to switch of basic validation of the directory name
  • "Welcome" screen: If the update question is visible, show a tooltip icon that displays the installation directory
  • Debian media files: Added an "Architecture" option on the "Installation options" step of the media wizard

API changes:

  • API: added Util#isWindows2012
  • API: FormEnvironment#makeParentGroupVisible did not work if the form component was contained in nested layouts

Bugs fixed:

  • "Install a service" action: Spaces after commas in the comma-separated list of Windows dependencies were not supported
  • For scripts of form components in uninstaller screens, the editor assumed a context parameter of type InstallerContext instead of UninstallerContext
  • Fixed an NPE when installer variables were used in archive launchers
  • Increased window sizes of the "Running processes" window and the native installer splash dialog on Windows
  • Debug installer did not work if external installer data files were selected
  • Fixed an exception when Pack200 was used and no user scripts where present in the installer
  • Custom code was not added to the elevated helper process of the uninstaller
  • Running services could block unattended update installer
  • Fixed problems with old Xerces implementations in java extension directories
  • Config files could be garbled when opening and saving multiple config files on certain Linux systems
  • Updater templates: In console and GUI mode, the updater template did not adjust the installation directory to that the invoking installation. This could be a problem if there were multiple installations with the same application ID.
  • Mac OS X: Fixed exception when an application bundle directory was used as an external launcher
  • Mac OS X: Messages installer splash dialog (Java 7 only) were not displayed correctly in some languages
  • Mac OS X: Installed Oracle JRE was not found for recent JRE versions
  • Linux/Unix: Return 0 when stopping a non-running service
  • Linux/Unix: The directory lib/ext in bundled JREs was not used as an extension directory
  • Linux/Unix: Logging from the java.util.prefs subsystem was printed on the command line for installers running with Java 7
 

Release 5.1.5   |    2013-01-15

Bugs fixed:

  • "Create a Zip file" action: The action could not be run in elevated mode
  • Fixed an IllegalStateException for downloads
  • Mac OS X: Fixed an AccessControlException that would occur for silent installers with a bundled Java 7 JRE
  • Mac OS X: Only the first file association was installed (regression in 5.1)
  • Windows code signing: No error was shown if the Windows certificate file did not contain the complete certificate chain
  • Code samples in help were compressed to single lines
  • File selectors for distribution tree showed spurious check boxes when hovering with the mouse over the tree
 

Release 5.1.4   |    2012-12-18

New features:

  • Code signing: Windows executables are now hashed with SHA1 instead of MD5 which prevents problems with some anti-virus software
  • "Set the owner of files and directories": It is now possible to change only the group ownership by prefixing the "Owner" property with a colon
  • "Modify text files", "Modify text files with regular expressions" and "Replace text in XML files" action: The "Replacement" property now has a multi-line editor

API changes:

  • Added com.install4j.api.context.Context#getDefaultInstallationDirectory

Bugs fixed:

  • "Installation components" screen: The first click into checkbox trees had no effect if Java 7 was used
  • "Installation location" screen and "Installation directory selector" form component: Aligned required and available space on the right to facilitate comparison
  • Fixed a memory leak in the installer
  • vmParameter elements in the install4j ant task did not work
  • When no JRE was found on Mac OS X, the displayed download URL for the JRE was wrong
  • Moving backwards through screen loops was broken
  • Fixed Windows 8 certification problems
  • Fixed an NPE that could occur when file association were uninstalled
  • Fixed a problem when upgrading install4j that resulted in a NoSuchMethodError when compiling a project
  • Fixed a java.lang.UnsatisfiedLinkError on uninstallation with a bundled Java 7 when recursive file actions were used after the "uninstall files" action
  • Calls into com.install4j.api.ApplicationRegistry could fail if invoked from outside the installer
  • JRE bundle creation: If the packing operation failed, no detailed error message was shown
  • Fixed NPE in unattended mode that could occur when when form screens were contained in screen loops
  • Mac OS X: It was not possible to call a "Start a service" action from an installer application that was executed by a service
  • Mac OS X: When a downloaded installer was mounted as root (for example, by an updater started from service), it could not be executed
  • Mac OS X: Added support for app store certificates
  • Mac OS X: Custom localization file was not used for the installer (OpenJDK only)
  • Mac OS X: Launcher variables were not replaced (OpenJDK only)
  • Unix: The file mode of the uninstaller was always set to 700
  • Unix: The jre/.systemPrefs directory of a bundled JRE was not removed on uninstallation
  • AIX: Java 7 JRE installation was not found
  • Windows: Under some circumstances, installed applications were only registered in the the install4j application registry on a per-user basis and not system wide
  • Windows: Do not add the VM parameter -Dsun.locale.formatasdefault=true as default
 

Release 5.1.3   |    2012-09-21

New features:

  • Generated executables now pass Windows 8 certification
  • Mac OS X launcher wizard: On the "Executable info->Mac OS X options" step, you can specify an entitlements file for code signing (relevant for App Store deployments)
  • Mac OS X: Installer applications have a "Mac OS X Entitlements file" property
  • Mac OS X media file wizard: On the "Installer options" step, you can enable signing of all installed launchers (relevant for using certain OS features such as iCloud storage)
  • Mac OS X: Support VM passthrough parameter (prefixed with "-J") like on Windows and Linux/Unix (OpenJDK only)
  • Mac OS X: Support -include-options directive in VM parameters (OpenJDK only)
  • Mac OS X: Also read .vmoptions file next to the application bundle (OpenJDK only)
  • Mac OS X: install4j IDE now works in full screen mode
  • "Run executable or batch file" action: Added a "Wait for output streams" property below the "Wait for termination" property which can be deselected so that the action does not wait for child processes to terminate
  • Support for non-ASCII path names in tar files

API changes:

  • Added Util.isWindows8()
  • JVMSelector now finds Oracle JRE on Mac OS X

Bugs fixed:

  • "Installation type" screen: If the IDs of installation components were customized, the initial installation type could not by set by a response file
  • "Directory selection" screen: Fixed NPE if the initial directory was empty
  • Floating licenses: Setting the license server on the command line with "install4jc --license FLOAT:server" was not documented, added the new options --windows-edition and --multi-platform-edition to change the desired edition
  • Rollback of file installation was always executed at the end. This could lead to wrong results in combination with "Delete files and directories" action.
  • "Download file" action: Deselecting "Show progress" did not completely disable progress messages
  • Actions that were executed through a link to a single action were never elevated
  • Proxy dialog was sometimes not shown when downloading a JRE in the install4j IDE
  • Setting -DproxyAuthPassword did not work, the proxy dialog was always shown if a password was required
  • The selection of a JDK for the code editor on the General settings->Java version tab was not saved in the project (regression in 5.0)
  • Build hung in command line mode when wrong keystore password for code signing was entered
  • Linux: Localized desktop directories were not supported
  • Custom JRE bundles: JavaFX JAR file was not unpacked
  • Fixed a race condition with the install4j splash screen
  • Windows code signing: Also handle SPC files in PEM format
  • Mac OS X code signing: Allow non Apple certificates
  • Mac OS X: install4jc did not work when Java 7 was set as the default
  • Mac OS X: Java 7 could not be used for code editor
  • Mac OS X: Avoid duplicate classpath entries
  • Mac OS X: An installed Oracle JRE was not found
  • Mac OS X: -include-options directive was not supported in .vmoptions files (OpenJDK only)
  • Mac OS X: environment variables were not expanded in .vmoptions file (OpenJDK only)
  • Mac OS X: File encoding was wrong when OpenJDK was used
 

Release 5.1.2   |    2012-07-27

New features:

  • Project compilation now produces a file "output.txt" that list all generated media files, their IDs, display names and platform types
  • "File chooser" and "Directory chooser" form components: Added a "Initial browser directory" property

API changes:

  • Install4JPropertyDescriptor.CONTEXT_NO_INSTALLER_VARIABLES now also works for properties of type java.io.File
  • In addition to .utf8 files, .properties files are now supported as extension localization files

Bugs fixed:

  • context.getInstallationComponents() could not be called from an elevated action (regression in 5.1)
  • Moving back and forth through through screen groups could cause the installer to fail (regression in 5.1)
  • "Install files" action: Fixed exception when "delay if necessary" was used for elevated install files action (regression in 5.1)
  • "Hyperlink action label" action: variables in the hyperlink text were not replaced in console mode
  • "Hyperlink action label" form component: Show label text in console mode if defined
  • "Install files" action: If "Show file names" is deselected, the unpacking progress for packed JAR files was still shown which did not make any sense to the user
  • "Leading label" form component: If only an icon and no text was configured, the icon was not shown
  • "Start a service" action on Mac OS X: Removed printing of an uncritical exception
  • "Single radio button" form component: In console mode, the installer could hang under some circumstances
  • Mac OS X code signing: Automatically add Apple certificates if .p12 file contains no chain. The "certificate export" functionality is no longer necessary and has been removed.
  • Mac OS X code signing: Fail during build if an unsuitable certificate is provided
  • Mac OS X: com.install4j.api.JVMSelector did not return the real home directory of the JRE bundle
  • Mac OS X: Mark all launchers as high resolution capable for retina displays
  • Linux/Unix: Fixed problem where file modes could not be changed during update installations
  • Linux/Unix: com.install4j.api.unix.UnixFileSystem.setMode did not work under some circumstances
  • Updaters would throw an NPE in the "Finish" step if the downloaded media file was an archive
  • Custom installer applications: external files (such as icons) in were not loaded
  • Custom installer applications: An empty working directory lead to an error during build
  • Progress operations would not work if a screen with a progress interface was executed through a link
  • Compiler variables could not be used in custom localization files
  • Linking to screen groups in the same installer application was broken
  • In console mode, when cancelling an installer, the subsequent prompt on the terminal could be indented
  • Using links in custom installer applications that were contributed from merged projects did not work
  • The ID of the uninstaller launcher at runtime was not "uninstaller", but a generated and non-configurable ID
  • Do not add custom code jar files to the class path more than once in the installer
  • Cached proxy information was never used if the auto-detected browser config was wrong
  • Unbalanced quotes for arguments were not handled correctly by launchers
 

Release 5.1.1   |    2012-06-30

New features:

  • Mac OS X launchers: On the Executable info->Mac OS X options step of the launcher wizard, you can now specify a custom bundle identifier
  • "Read value from XML file" action: Added a "Variable name for node" property to save the org.w3c.dom.Node value of the match
  • Support for compiler variables in pre-defined installer variables of type string and string array

Bugs fixed:

  • Several command line options were broken (regression in 5.1)
  • Javadoc formatting of the API documentation was broken (regression in 5.1)
  • Generated installers did not work on OS X 10.5 (regression in 5.1)
  • Windows code signing corrupted various 64-bit executables
  • Run executable action could not be elevated
  • When setting a wizard index for a particular screen, it could not be changed again when showing the screen for a second time
  • The installer variable "sys.installationDir" was not written to the response file if the "Installation location" screen was not present in the project
 

Release 5.1   |    2012-06-18

Explore What's New

New features:

  • Integrated code signing for Windows and Mac OS X
  • Support for OpenJDK on Mac OS X
  • Support for JRE bundling on Mac OS X if OpenJDK is used
  • New privileges architecture where the installer GUI always runs in unelevated mode and actions are elevated on demand, depending on the new "Action elevation type" property of installer applications, screens, groups and actions
  • "Run executable or batch file" action: "Timeout" property that can be set if "Wait for termination" is selected. If the timeout is exceeded, the process is killed.
  • "Run executable or batch file" action: Added a "Use rollback executable" property to optionally specify an executable that is invoked in the case of a rollback
  • "Run executable or batch file" action: In addition to file redirection, the action now supports stderr and stdout redirection to installer variables or to the log file and stdin redirection from a string
  • Added a "Require installer privileges" action that is now used in the "Startup" node of uninstallers for new projects by default
  • "Add a desktop link" and "Create start menu entry" actions: Added a "Run as administrator" property
  • "Directory chooser" form component and "Directory selection" screen: Added an "Allow empty input" property to disable validation if no directory is selected
  • Added a "Leading label" form component with no central component
  • "Label" form component: Added an "Add empty leading label" property
  • Define distribution tree: In the wizard for adding and editing single files, the file names can now be edited
  • Launcher wizard: Added the "Executable Info->Mac OS X options" step where an additional fragment for the Info.plist file can be entered
  • Loop index for screen and action groups: Loop index variable in loop expression, configurable start index and increment, optional loop index installer variable
  • Log execution times of all actions
  • Added "Count nodes in XML file" action
  • Much faster LZMA compression during build
  • Much faster modification of file rights on Linux/Unix/Mac OS X if Java 7 is used
  • Faster installation of large files
  • Better implementation of Util.showPath on Linux that uses the default file manager if possible

API changes:

  • Added com.install4j.api.beaninfo.ActionBeanInfo#setUninstallerStartupAction
  • Added InstallerContext#installDirectory(File, UninstallMode) to create empty directories that will be removed by the uninstaller.
  • Added com.install4j.api.events.InstallerActionEvent

Bugs fixed:

  • Multiple directory choosers on the same form screen did not work correctly
  • "Display text" screen: Installer variables were not replaced in title, subtitle and info text properties
  • Mac OS X: Generated launchers did not work in installation directories with parentheses
  • Customizable forms: Pressing CTRL-End would move the form contents for scrollable forms that were not large enough to show a scroll bar
  • Project file contents were not stable when saving under some circumstances
  • Windows: When removing a service dependency, the change was not propagated to the installation during an update
  • "Run executable or batch file" action: If "Wait for termination" is selected, the redirection streams might not have been fully read after the process had finished
  • Windows launchers: Remove temporary files if no JRE can be found
  • Screens: "Background image" property for wizard index did not have a variable selector
  • Compiler variables in external launchers were not replaced during compile-time
  • New projects were opened in the background
  • Fixed exception when uninstalling file associations
  • Windows launchers: Temporary directory creation is now more robust
  • Fixed wrong behavior when going back in the screen history where screen loops were present
  • "Delete file or directory" action: The action could be unsuccessful under some circumstances
  • Fixed XML-related AbstractMethodError on Java 6
 

Release 5.0.11   |    2012-01-12

API changes:

  • Fixed NPE when an error message was show in com.install4j.launcher.ApplicationLauncher
  • Return null for special folder API when used on non-windows platforms instead of throwing an exception

Bugs fixed:

  • Fixed locale regressions in 5.0.10
  • Distribution file choosers were not shown if the install4j IDE was run with Java 7
  • "File version" property for uninstaller and and custom installer applications had no effect, the product version was always used for the Windows version resource
  • Unix installers were broken on some systems
  • Windows: If the user was changed during UAC, the program groups were not created for the original user
  • Installation directory chooser form component: Disabling the form component did not disable the chooser button
 

Release 5.0.10   |    2011-12-08

New features:

  • Added progress feedback for unpacking JAR files that were packed with Pack200 as a percentage number after the file name in the status line
  • Windows: The auto-detected language is now the "Display language" setting defined in the "Region and Language" Windows control panel, independently of the used JRE
  • Support Java 7 for the install4j IDE and the command line compiler (launchers and installers have already supported Java 7 before)

API changes:

  • Added ProgressInterface#setSecondaryPercentCompleted to add progress feedback for secondary tasks in the status line
  • UpdateChecker.getUpdateDescriptor threw an NPE instead of an IOException if the connection could not be made to the server

Bugs fixed:

  • "Directory chooser" and "File chooser" form components: The validation script was not executed when the user clicked on the Next button, so manual changes were not validated
  • "Installation type" screen: If custom IDs were defined for the installation types, the installer variable "sys.installationTypeId" was still set to the numeric ID of the selected installation type in console mode
  • "Write text to a file" action: Line separators of the runtime platform were not always used in the written file
  • "Installation directory chooser" component: A duplicate existing directory warning was displayed in console mode at the end of the form
  • "Installation directory chooser" form component: Validation was run even if the component was not visible or not enabled
  • "Download and install component" action: The action could only be added once to a project
  • All "Spinner" and "Text field with date format" form components: Value initialization was broken for response files
  • "Add Windows file rights" and "Add access rights for a key in the Windows registry" actions: Installer variables were not replaced in the "SID or account name" property
  • "Display progress" screen: Installer variables in the "Initial status message" property were evaluated at startup and not when the screen was activated
  • "Hyperlink URL label" form component: Installer variables in the displayed URL were nor replaced in console mode
  • "Add a desktop link" action: The specified icon had no effect for links to a .url file
  • ant task: If the "buildids" parameter was specified with an empty value, no media files were built
  • Creating a file association could throw an exception
  • A hidden installation component that was initially selected was not installed in console mode
  • Surrounding white space in answers to multiple choice questions in console mode was not ignored
  • Generated service launchers were not compatible under Red Hat Linux
  • Mac OS X: Packed custom code jars that are not in the distribution tree were not used for the uninstaller
  • Updater applications did not work if they were launched in the same process
  • Launchers on Mac OS X and Linux: Native library path entries containing environment variables to an absolute path did not work
  • The update descriptor file could contain duplicate <comment> elements for the principal language if it was also added as an additional language
  • Mac OS X: A preference store bug in Mac OS X 10.7 broke the detection of previous installations
  • Some operations in SWT applications could be slow due an application manifest entry
  • Automatic launcher integration did not work in MAC OS X single bundle media files
  • Single instance mode for launchers was broken if there were spaces in the name of the executable
  • Updaters that were started by launcher integration in the same process at startup did not switch to the native look and feel
  • Language auto-detection did not work in unattended mode
  • Fixed a Debian package warning
  • Linux/Unix installers: If the environment variable GREP_OPTIONS was defined, the installer could break
  • Closing the language selection dialog with the window close button could leave the installer hanging
  • "Bundled JRE" step in the media wizard: A change in the 32-bit/64-bit selection in the previous step was not considered for the choice of bundled JREs
 

Release 5.0.9   |    2011-07-07

New features:

  • Installer applications: Added a "Progress interface creation script" property to customize the display of progress information for unattended installations
  • Installer: Added a "Replacement script for language code" property. This can be used to change the auto-detected language or to implement custom auto-detection of the language that should be used.
  • Installer applications: Added a "Help customizer" for modifying the displayed help on the available command line arguments
  • "Set a variable" action: Added a "Register for response file" property
  • Added a "Hide help button" option on the "Description" tab of the installation component property sheet
  • Added a launcher variable "sys.tempDir"
  • Added a compiler variable "sys.time"

API changes:

  • Added com.install4j.api.context.UnattendedProgressInterface and com.install4j.api.context.DefaultUnattendedProgressInterface for the "Progress interface creation script" property of installer applications
  • Added Context#getVersion() to get the version of the installed application
  • Added Context#getMediaFileId() to get the media file ID of the installer
  • Added Context#getExtraCommandLineArguments() to get command line arguments that were not processed by the installer
  • Added FormEnvironment#reinitializeFormComponents() to re-run the initialization of all form components
  • Variables#getInstallerVariable(String) and Variables.getInstallerVariables() do not throw IOException anymore. If the automatically created response file cannot be read (as is the case for archives), system variables are still available from these methods
  • Calling UpdateChecker.getUpdateDescriptor with ApplicationDisplayMode.GUI would throw an NPE if the proxy dialog had to be displayed
  • Script properties could not have array return types

Bugs fixed:

  • Prevent PCA mitigation ("This program might not have installed correctly”) for Windows 7
  • Fixed exception when running an installer with certain layouts with Java 1.5
  • "Help text" tool tip labels in customizable forms were focusable
  • Text form components on tabbed panes: If validation failed with an error message, the parent tab of the text form component was not shown
  • Encoding in displayed HTML files was not detected correctly
  • "HTML display" form component and screens showing HTML text: For direct entry, installer variables were not replaced in the HTML
  • "Installation components" screen: Fixed flickering when toggling the help buttons in the tree
  • "Installation components" screen: Only show tree lines if the the component tree has component folders
  • "Create program group" action: On Unix, the default value of the "Directory for links" property did not use the user input from the "Create program group" screen
  • For a wizard index that was defined in the IDE, installer variables were not replaced in the keys and step names
  • Fixed NPE when writing a response file with a string array variable value containing a null value in one of the array elements
  • Util.showOptionDialog did not show default value in console mode and numeric keys were displayed. This was inconsistent with questions from form components. Keys are now taken from the first letters of the supplied options and can be set explicitly by prefixing the letters with '&'.
  • Links to screens or actions in merged projects could fail at runtime under some circumstances
  • For certain network errors, downloads would not time out and hang the installer
  • If no initial text was set for the status and version lines in the splash screen configuration of a launcher, subsequent updates via the API has no effect on Unix and Mac OS X
  • Generated .vmoptions files were not preserved by the "Uninstall previous installation" action
  • Installer variables could no longer be used when overriding system messages (regression in 5.0.8)
  • System installer variables were not available for archives
  • PDF screen and actions did not work anymore
  • Using installer variables with numeric values as arguments to i18n keys in expressions like ${i18n:myMessage(${installer:myNumericValue})} did not work
  • For launchers in archives, installer variables in system properties and arguments were not replaced with "null" if no response file was available. This was inconsistent with the behavior of launchers in regular installers
  • The error output of install4j command line tools was redirected to a file and not displayed on the terminal (regression in 5.0.8)
  • If an error occurred during script compilations, lots of warnings regarding serialVersionUIDs were printed as well (regression in 5.0.8).
  • Media wizard: In the "Exclude components" screen, if a folder was excluded, the component tree was not displayed the next time that the project was loaded
  • Media wizard: When pack200 compression was activated, file exclusions did not work for JAR files that were also used in custom code
  • The "createbundle" command line tool did not work in headless mode
  • File exclusions for directory entries in the distribution tree were not saved when "Add to subdirectory" was selected for the entry
  • Windows registry: Strings stored without null termination were not read correctly
  • Windows service shutdown did not work correctly when user code redirected System.in
  • Windows user creation failed under certain circumstances
  • Mac OS X: An unnecessary test file remained when the installer process was elevated
  • Mac OS X: It was not possible to use very long installer names
  • Mac OS X: No text field was shown for certain file chooser dialogs in the install4j IDE
  • Unix: Installers and launchers did not work if the $HOME directory was not writable
  • Unix: Several actions would fail to operate on files whose names contained a dollar sign
 

Release 5.0.8   |    2011-04-13

New features:

  • "Install files" action and "Download and install component" actions: In console mode, file names are now shown on the same line to avoid a long scrolling list of file names
  • In console mode, HTML tags are now removed in all text output. Multi-line messages use an HTML to plain text conversion that conserves line breaks, lists and similar layout tags.
  • "Create program group" action: Windows program group entries now have an additional "Run as administrator" option
  • Added a "Read text from file" action that reads the contents of a file and saves them to an installer variable

API changes:

  • ProgressInterface#setDetailMessage: In console mode, repeated invocation of this method overwrites the current line. This prevents a long scrolling list of temporary information.
  • Added Screen#hasDefaultButtons() for hiding the navigation bar at the bottom of the screen
  • Context#isUpdateInstallation was not updated when the installation directory was changed by the "Installation location" screen in console mode
  • Added WinFileSystem#createStartMenuEntry method with an additional runAsAdministrator parameter

Bugs fixed:

  • Regression in 5.0.7: File selection for installation components was not saved
  • Regression in 5.0.7: Using installer variables in custom localization files did not work as expected anymore, all variables were replaced at startup instead of at the time of usage
  • "Create a file association" action: On Mac OS X 10.6, the action did not have any effect until the next reboot
  • In console mode, "Downloading ..." was displayed even if no component data files were actually downloaded
  • "Multi-line HTML label" form component: In console mode, blank lines were printed before and after the text
  • "Fix line feeds" action: The file property was lost when reading a project saved by install4j 4.x
  • "Uninstall previous installation" action: An already installed JRE bundle was deleted, which could cause problems
  • It was not possible to insert i18n messages which contained installer or compiler variables by using the variable selector
  • Unix: Unwanted logging output of the java.util.preferences subsystem was not switched off early enough
  • Unix: Installing directly into the home directory did not work. This could be the case if a dedicated user was created whose home directory was set to the installation directory.
  • Windows launchers: Error messages about invalid environment variables in the search sequence contained an unresolved variable
  • "Fix line feeds" action: In console mode, exceptions were printed if a file or directory did not exist
  • "Directory selector" and "File selector" components: In console mode, if the bound variable was defined before the screen was shown, the selector did not show the defined value as the default value
  • Updater templates did not force unattended update installers to use the current installation directory which could be a problem if multiple installations of the same product existed
  • Max OS X: The code editor dialog would not appear the first time a script was edited
 

Release 5.0.7   |    2011-03-21

New features:

  • Windows installer: Language auto-detection is now also implemented in the native initial progress dialog. If the user language is configured for the installer, it will be used with a fallback to the principal language.
  • Windows launchers: Make executable name available for JVM discovery, for example in VisualVM
  • Support for .properties files in the editor for custom localization files (ISO-8859-1 encoding and java.util.Properties-style escaping)
  • Improved version comparison for auto-updates. Sequences like 2.0 beta 2 -> 2.0 rc 1 -> 2.0 are now compared correctly
  • "Uninstall previous" action: The log file of the uninstaller is now written to .install4j/uninstallPrevious.log

API changes:

  • Added com.install4j.api.screens.Screen#hasDefaultInsets which makes it possible to develop custom screens that take up all available space
  • com.install4j.api.context.Context#runElevated(...) and #runUnelevated(...) were broken
  • UpdateChecker#getUpdateDescriptor did not ask for proxy information if a connection was refused
  • AbstractBean#replaceVariables methods did not replace installer and compiler variables when called during the initialization phase of a bean
  • InstallerContext.isUpdateInstallation() returned true for any installation if it was called for the first time after the "Install Files" action had already run

Bugs fixed:

  • "Request privileges" action on Mac OS X: Pack200 compression did not work correctly if the main installation process was elevated
  • "Vertical spacer" form component: No space was added in console mode
  • "Welcome" screen: Form components with a horizontal size that exceeded the available space broke the layout
  • "Create program group" action: Menu integration on Linux/Unix was not always removed during uninstallation
  • "Windows user selector" form component: Any SIDs already contained in the bound variable were not displayed in the user selector and discarded on "Next". This prevented the pre-definition of SIDs with response files.
  • "Run executable or batch file action": Redirection files were not closed immediately after a successful execution
  • "Welcome" screen: Form components were not displayed in console mode
  • "Finish" screen: No message was printed in console mode
  • "Hyperlink label" form component: Nothing was printed in console mode
  • "Create program group" action: The "Display icon" property of URL links did not have any effect in modern Windows versions
  • Windows: Fixed UnsatisfiedLinkError during some installations
  • Windows launchers: In the fixed VM parameters for launchers and installers, a "\n" was replaced with a newline character
  • Windows: When running processes were detected in console mode, an exception was thrown
  • Windows: When starting an installer with the -h argument, a corruption warning was shown for the next start
  • Windows services: Do not report an error for service uninstallation when the service is already marked for deletion
  • Windows services: Do not report an error when stopping a non-active service
  • Windows services: The /status command line argument did not work under some circumstances
  • Mac OS X daemons: The service actions could fail if an 3rd part plist file with an error was present in /Library/LaunchDaemons
  • Mac OS X archives: Command line executables did not have the executable flag
  • Mac OS X: The elevation helper processes showed an extra dock icon when INSTALL4J_ARGUMENTS was defined for a GUI installer
  • Linux DEB files: Empty dependencies could cause problems with repositories
  • Some classes from the install4j API could not be used in scripts, because the compiler did not find them
  • Hosts name exceptions in browser proxy configuration were not respected for downloads in install4j
  • Proxy information for downloads was not always applied immediately when changed in the browser
  • Proxy information in the browser was used even if the proxy was disabled in the browser
  • Proxy dialog was not shown in unattended mode with progress dialog
  • The variable "sys.programGroupDir" was not available if the "Create program group" screen was not displayed
  • Excluding file sets in the media wizard from merged projects caused an NPE in installer
  • vmoptions files: "-include-options" command did not work correctly with relative files
  • If the "Do not delete temporary directory" build option was selected, generated script sources were still deleted
  • At runtime, missing keys in custom localization files did not fall back to the principal language
  • Sometimes the installer unnecessarily asked the user about replacing icon files on Linux/Unix
  • Prevent multiple error dialogs if auto-saving does not succeed
  • Quick search in list of bound installer variables did not work
  • HTML tags were shown for some messages in console mode
  • Some file modification actions printed exceptions in console mode
  • Hiding an installation component had no effect in console mode
  • The language selection in console mode was not presented in the user language, but always in the principal language
  • Non-error messages were printed to stderr instead of stdout in unattended mode
 

Release 5.0.6   |    2010-12-21

New features:

  • "Install a service" action: Added a "Windows arguments" property for arguments that are passed to the main class
  • "Write text to a file" action: Added a "Log text" property for preventing the replaced text to be written to the installation.log file
  • "Run executable or batch file" action: In the redirection properties, /dev/stdout, /dev/stderr and /dev/stdin connect to the default streams of the installer application
  • "Check for running processes on Windows" action: For relative files in the "Additional executables" property, only the names of the executables are used for comparison. This enables checking for executables with an unknown location.
  • Installer applications: Added a "Disable console mode on Windows" property
  • Use a better file choose dialog in the install4j IDE on Mac OS X (from the Quaqua Look and Feel)

API changes:

  • Added Context#unregisterResponseFileVariable(String) to reverse the effect of Context#registerResponseFileVariable(String)
  • Added WinUser#getUserName(String sid) to get the unqualified user name
  • Added Win32UserInfo#getUserProfileDirectory(String sid, String password)
  • Added WinFileSystem#getDriveType() to check for removable drives

Bugs fixed:

  • "Run executable or batch file" action: On Mac OS X, the "Wait for termination" property had no effect if an application bundle was started
  • "Run executable or batch file" action: On Windows, use less quotes for arguments to avoid issues with programs that do not expect quoted arguments
  • "Run executable or batch file" action: If the .exe extension was missing, the executable was not launched on Windows under certain circumstances
  • "Run executable or batch file" action: In the installation log file, the values of the redirection files properties were reported without variable replacements
  • "Run executable or batch file" action: If a redirection file was set to an installer variable, and that variable contained the empty string, the execution failed
  • "Run executable or batch file" action: On Windows, AutoRun commands defined in the registry were not ignored
  • "Request privileges" action: On Windows, the action did not work with normal users when UAC was disabled
  • "Request privileges" action: On Mac OS X, external media files and elevation of the main process did not work together
  • "Add VM options" action: On Mac OS X, the action would fail under certain circumstances
  • "Install Files" action: Files were extracted before the user was asked whether an existing file should be overwritten. For large files, this would waste time for the user.
  • "Uninstall Files" action: The file classes.jsa of a bundled JRE was not deleted for server VMs
  • "Uninstall files" action: In certain cases, shared files were not uninstalled as expected
  • "Read a key from the Java preference store" action: The property "Preference root" could not be changed in the install4j IDE
  • "Installation components" screen: If multiple hidden installation components were on the same level in the component tree, only the first one was actually hidden.
  • "Delete files and directories" action: The action resulted in an error if a file did not exist, which conflicts with the behavior in install4j 4.x. Now the action returns with success even if the file that is to be deleted could not be found.
  • "Set a variable" action: Exceptions were not reported in the installation.log file
  • Add-on installers installed their own install4j runtime, which could lead to broken uninstallers if runtime library shrinking was enabled
  • Regression in 5.0.5: project reports were not opened immediately in browser
  • It was not possible to exclude the uninstaller in the "Customize project defaults->Exclude installer elements" step of the media wizard
  • Fixed a FileNotFoundException when JAR files were used in the custom code and multiple media files were built
  • Single class custom code entries did not work when compiling on Mac OS X
  • Windows: The silent installer did not automatically download a dynamic JRE bundle when the direct downloading option was selected on the "Bundled JRE" step of the media wizard
  • The "Uninstallation failure" screen was always shown for the installation dir on Mac OS X
  • Windows: When msvcrt71.dll was not present in windows\system32, a bundled jre was used, and a launcher was started after installation, the installer always asked for a reboot
  • The "Global exclude" pattern under Files->File Options was not saved to the project file
  • When changing between different project windows, the file chooser could show the wrong distribution tree under some circumstances
  • Fixed a rare string corruption problems with installer settings that were saved to the Windows registry
  • Public JREs on HP-UX were not found
  • Using links in the same installer application led to ClassCastExceptions at runtime under certain circumstances
  • The "preserve" option of the command line compiler was not available on the ant task
  • If a download URL was specified on the "Bundled JRE" step of the media wizard, it was used even if the "Don't bundle" a JRE option was selected
  • The -wait command line option did not work with unattended mode on Windows. Unattended updaters were mainly affected by this bug.
  • Form components: The tool tip help label from the "Help text" property was not shown under some circumstances
  • Unix launchers: Using installer variables for redirection files broke the launcher script
  • Choosing the "According to update schedule registry" mode on the "Launcher integration" tab of installer applications did not work
  • Windows: Services were uninstalled when the service path was changed during an update
  • A rollback could leave the file .install4j\response.varfile in the installation directory
  • Unix installers did not work with some IBM JREs
  • Partially downloaded files were not deleted
  • Mac OS X: Pack200 compression was not applied for JAR files in custom code
  • Mac OS X: Console launchers could only find the default JRE
  • Compiler variables could not be overridden for merged projects from the command line or the ant task
  • AIX: Exceptions were printed when an installer was executed
  • Mac OS X: The system menu was changed for in-process execution of custom installer applications
  • Do not write the default chkconfig info to unix daemon scripts if the custom script for the launcher already contains a chkconfig header
 

Release 5.0.5   |    2010-09-29

New features:

  • Installer applications: Added new execution mode "Unattended mode with progress dialog" and child property "Title for progress dialog". This is the same functionality that is available from the command line with the -splash [title] arguments.
  • System installer variables such as "sys.userHome" are now available for launchers, e.g. in redirection file names and the in com.install4j.api.launcher.Variables class
  • The build options in the Build step of the IDE are now persistent

Bugs fixed:

  • Under some circumstances, the proxy dialog was not displayed and an exception was thrown instead
  • Installer variables could not be used for redirection files of generated launchers
  • Under some circumstances, privilege elevation did not work for normal users on Mac OS X
  • Installer variables were not resolved when executing a launcher from the installer, because the response file was not yet written
  • Update detection did not work for Mac OS X single bundle installers
  • Custom code entries with spaces in the path could not be found by script compiler
  • If -Dinstall4j.keepLog=true was passed to the installer, the temporary log file was not preserved if the installation was successful
  • Windows launchers: Service arguments embedded in the registered binary path did not work correctly
  • unpack200 failed on some Windows machines
  • "Run executable" and "Execute launcher" actions: On Mac OS X, application bundles were not executed with /usr/bin/open, so it was possible to start them multiple times
  • The command line compiler hung on Mac OS X when a vmoptions file without a trailing line feed was processed
  • Fixed NPE with launcher integration
  • Generated vmoptions files were not included when launcher was selected directly in the component selection
  • Custom code jars were not copied to the final destination when selected directly in the component selection
  • -Dinstall4j.debug=true was not set in debug scripts, so stack traces were not printed to stderr
  • installer variables: In properties with array values (like the arguments of a "Run executable" action), empty array values resulting from empty installer variables were not pruned from the resulting array
  • Unix launchers: Installer variables in fixed VM parameters and arguments were always replaced with empty strings
  • If there was a fatal error while writing the update descriptor, the build process in the install4j IDE would hang
  • Unix installers: Since JRE 1.6.0_17, the workaround for hiding annoying messages from the java.util.prefs subsystem did not work anymore
 

Release 5.0.4   |    2010-08-12

Bugs fixed:

  • Custom icon for the installer was not used for the wizard window (regression in 5.0.3)
  • Clicking on the "Finish button" in install4j IDE wizards closed the wizard immediately (regression in 5.0.3)
  • "Create a ZIP file" action: Installer variables were not replaced in the "ZIP file" property
  • Definitions in a response file that was specified with the -varfile command line option were overridden by predefined installer variables
  • Fixed a deadlock for Windows launchers
  • Fixed deadlock while saving a project
  • Mac OS X: The content of a vmoptions file specified in the launcher wizard was not added to the static VM parameters for command line and service launchers
  • Windows: Invisible windows could have the name "Default IME" or "theAwtToolkitWindow" which was displayed by the check for running processes. Now, the file name is used in these cases.
  • Auto-saving of a project file was not stopped after a frame was closed
  • Text form components: If "Prevent empty user input" was selected, disabled components produced a warning message, too
  • Transparency in customizable banner form screens was sometimes incorrect for the classic Windows Look and Feel
  • It was not possible to use ampersand characters in custom message files
  • Could not pass "-e" to unix scripts when VM pass-through parameters were enabled
  • Starting services with "For Auto start installations only" selected did not work for services generated by install4j
  • Custom installer applications in archives did not work when runtime shrinking was enabled
  • Using compiler variables for fixed installer arguments or VN parameters did not work when debug installers were generated
 

Release 5.0.3   |    2010-07-30

New features:

  • "Welcome" screen: The screen is now a container for form components
  • Media file wizards of installers: Added a project customization step to statically include selected installation components that have been marked as downloadable for the whole project
  • When invoking unattended installers with the "-splash" options, there is now a cancel button.
  • Added a "Change cancel button state" action
  • "Run executable" action: Added a "Variable name for return code" property (nested property of "Wait for termination"), so you can use the return value later on.
  • Added an installer variable sys.workingDir

API changes:

  • Added com.install4j.api.context.InstallationComponentSetup#isDownloaded()

Bugs fixed:

  • Media file wizards of installers: Excluding the default file set broke the build
  • Copying and pasting into text fields did not mark the project as modified
  • Line endings in debug installers for other platforms than the current platform were incorrect
  • Scripts in form components are now passed the actual context interface (InstallerContext or UninstallerContext) instead of the parent Context interface
  • The installer variable sys.windowsDir did not contain the system wide directory when using terminal services
  • The command line compiler only allowed a single concurrent instance
  • "Run executable or batch file" action: If the executable did not exist, the action did not fail
  • Mac OS X: Background of some form components in configurable banner screens was gray, if they were contained in layout groups
  • Project report: "Allow 64-bit" setting was inverted
  • Too much memory was used when writing the files log
  • Custom icon for uninstaller was not shown as frame icon
  • Custom banner image of configurable banner forms was not shown in preview dialog
  • Custom banner image of configurable banner forms was not firmly anchored to "North" and "South" if the image height was greater than the maximum available height in the window
  • The installer variable sys.tempDir returned the wrong value
  • Elevation of privileges did not work correctly on Mac OS X 10.5
  • The -splash command line argument in unattended mode did not work when a custom installer application was launched in process
  • Fixed arguments for custom installer applications were ignored when the application was launched in process
 

Release 5.0.2   |    2010-07-15

New features:

  • Windows: Add a window entry to the task bar if a dialog box is shown while the main installer window is not visible

Bugs fixed:

  • Pack200 compression was not applied
  • Display output of code signing post processor in order to help with debugging configuration problems
  • Installer applications: Variables in the "Custom watermark text property" were not replaced
  • The check for update action of the install4j IDE would crash under certain circumstances
  • Including certain JAR files in custom code lead to a "No disk space left" error in the installer
  • "Create program group" screen: Installer variables in the "Program group name" and "Directory for links" properties were not replaced
  • "Copy files and directories" and "Move files and directories" action: Single file to file operations did not work as in 4.x.
 

Release 5.0.1   |    2010-06-30

New features:

  • Improved the preview dialog for configurable forms to make it more like the actual screen at runtime
  • Allow a * placeholder in classpath archive entries to support frequently changing version numbers of JAR files like in maven projects

API changes:

  • Added methods in com.install4j.api.windows.WinRegistry to access the 32-bit and 64-bit registry views on 64-bit systems

Bugs fixed:

  • For multi-language installers, the "Request privileges" action did not work on Windows
  • Fixed UnsatisfiedLinkError when installer was started from an updater that was generated with install4j 4.x
  • Mac OS X: Some form components had a grey background on banner screens
  • Unix and Mac start scripts for debug installers and debug uninstallers were broken
  • Formatted text field form components: "Initial text" property was ignored
  • Formatted text field form components and password form component: The "Enter goes to next screen" property was ignored
  • Installation directory chooser form component: An exception was thrown when previewing the form
  • If installation component folders were used and none of the contained installation components were selected, the installer would throw an exception on startup
  • "Copy files and directories" and "Move files and directories" actions: If the target directory was a relative file, the actions did not work
 

Release 5.0   |    2010-06-16

Explore What's New

New features:

  • Improved elevation of privileges on Windows and Mac OS X:
  • The new "Request privileges" action replaces the "Require admin user" action. It can elevate the main installation process or create a helper process with full privileges and works on Windows and Mac OS X.
  • "Run executable or batch file" action: The "Execution account" property allows you to run the executable as the original user or as an admin user
  • Service actions and actions that add rights on Windows will be executed in the helper process with full privileges if the "Request privileges" action was configured accordingly
  • The "Show URL" action, the "Show file" action and the "Execute launcher" action will be executed as the original user if the "Request privileges" action has elevated the main installation process
  • "Install files" action: Use original user rights when parent directory of an installed file belongs to the original user. This is relevant if the installer has been elevated with a different user account.
  • Major improvements for installer variables, compiler variables and i18n messages:
  • The variable selection dialog was redesigned. It supports filtering and shows default values and descriptions for all variables
  • Many new system variables were added
  • Compiler variables can now be organized in a tree and have descriptions that are shown in the variable selector
  • Installer variables can be pre-defined similar to compiler variables
  • When inserting variables, the correct expression is inserted for text fields, scripts and variable name properties
  • Installer variables that are bound to beans are detected and displayed in the variable selector
  • Bindings of installer variables are detected and displayed with back traces for each installer application
  • Custom localization files can now be created and edited in the install4j IDE, an action for overriding system messages is available in the editor.
  • More flexible and usable IDs:
  • All elements that have IDs can now be assigned custom IDs. The automatically assigned IDs continue to be valid.
  • The script editor now offers a dialog that lets you choose an ID by listing all available elements with IDs
  • Improvements for actions that operate on files:
  • Actions that operate on files now accept multiple files where appropriate
  • Actions that operate on multiple files now have "File filter" and "Directory filter" properties to control file processing with scripts
  • Launcher integration for custom installer applications:
  • A launcher integration tab has been added to custom installer applications where you can configure automatic invocations when launchers are executed. This is particularly useful for updaters.
  • On the "launcher integration tab", an integration wizard for calling custom installer applications from Java code is available
  • Improvements for the auto-update functionality:
  • All features of the update descriptor (updates.xml) are now exposed on the new Installer->Auto-Update Options tab
  • Some features of the update descriptor can be set on a per-media file basis in the Customize project defaults->Auto update options step of the media wizard
  • Updaters templates now reference the URL for updates.xml with the new compiler variable sys.updatesUrl
  • Comments in the update descriptor are now localizable
  • Extensive support for Windows users accounts:
  • Added a "Windows user selector" form component that also has the ability to create new users
  • "Install a service" action: The "Account" property has an "Other" option that lets you set a specific user to run the service
  • "Add access rights for a key in the Windows registry" and "Add Windows file rights" actions: The "Trustee" property has an "SID or Account name" option that lets you set a specific user
  • Improvements for service actions:
  • Service actions now support service executables that were not generated by install4j. If you set the "Service" property to "Other executable", an executable and a service name can be configured.
  • Service options can now be configured for each "Install service" action instead of the previous per-launcher configuration in the launcher wizard
  • "Install service" action: Added a "Windows priority" property
  • "Install service" action: Added an "Account" property
  • "Install service" action: Added a "Keep current account" property to preserve account changes by the user that were made manually after the installation
  • "Install service" action: Added a "Restart on failure" property
  • "Install service" action: Added an "Interactive" property
  • "Install service" action: Added a "Mac OS X identifier" property
  • Services on Mac OS X now use the more modern "launchd" subsystem
  • Improved handling of custom code and resources:
  • Custom code: The single user JAR file will only be created for directory and single class file entries. JAR files and resource files will not be packed into the single user JAR file anymore, they will be extracted to the .install4j/user directory. This directory is available from the sys.resourceDir installer variable.
  • Custom code will never be packaged twice. If the same JAR file should be installed, it will be moved from the .install4j/user directory where the custom code has been initially extracted.
  • Corruption detection and checksum verification for installers and downloaded components:
  • Improved corruption detection and error messages in generated installers
  • MD5 checksums are calculated during the compilation
  • For downloadable installation components, the download integrity is checked with MD5 checksums
  • "Download file" action: Added a "Check for md5sums" property
  • Support for Windows processes:
  • Added a "Check for running processes on Windows" action that optionally allows the user to terminate those process automatically
  • "Install files" action: If running processes are detected, the corresponding window titles are presented in a dialog
  • Improvements for file distribution:
  • The new Files->File Options tab allows you to define global options for the distribution tree that can be overridden for each entry in the distribution tree
  • Launchers now have a configurable overwrite mode for launchers on the Executable info step of the launcher wizard.
  • Launchers now have a configurable unix file mode on the Executable info->Unix options step of the launcher wizard
  • Distribution tree: Option to add a directory entry into a subdirectory
  • Common external content files for downloadable components and external data files. On the General Settings->Media File Options tab, you can enable this feature which is particularly useful for DVDs with multiple media files.
  • External data files are now also supported on Mac OS X
  • File definition tree: Support for multiple selection, copy mode for drag and drop, quick search, and copy and paste
  • Runtime is now shrunk to exclude all unused classed. On the General Settings->Media File Options tab this feature can be disabled.
  • Improvements for JRE bundling:
  • Added a command line JRE bundle creation utility (createbundle) and a corresponding ant task (com.install4j.CreateBundleTask)
  • The JRE bundle creation wizard (Project->Create a JRE Bundle) has been improved in several areas
  • "Bundled JRE" step of the media wizard: Added a button to copy a JRE bundle file in a default storage directory to another directory and use a "manual entry" for the copied JRE bundle file.
  • "Bundled JRE" step of the media wizard: Added an option to install a statically bundled JRE only if no suitable JRE exists
  • Use a private JRE bundle of an existing installation with the same application ID as a fallback if no other JRE can be found
  • Many new actions:
  • Added a "Create Windows URL link" action
  • Added a "Read value from XML file" action
  • Added a "Read a key from the Java preference store" action
  • Added a "Read a value from the Windows registry" action
  • Added a "Wait for HTTP port" action
  • Added a "Download and install component" action
  • Added a "Create a ZIP file action"
  • Added an "Extract a ZIP file" action.
  • Added an "Add an executable to the dock" action
  • Added an "Add a startup executable on Windows and OS X" replacing the Windows-only "Add an executable to the startup folder on Windows" action
  • Improvements for form components:
  • Layout groups and tabbed panes in form screens
  • All form components with leading labels: Added a "Help text" property. If set, a tool-tip label with a help icon will be added on the right side
  • Text field form components: Added a "Prevent empty user input" property that shows a default error message if the user input is empty
  • Keyboard shortcuts for form components with user input. Label text can contain mnemonics prefixed with "&" like in "&User" in order to activate the platform-specific keyboard shortcut.
  • Form components with user input: Added a "Request focus" property. If selected, the form component is focused each time the form is activated.
  • Text field form components: Added a "Enter goes to next screen" property
  • Added an "HTML Display" form component
  • More flexible configuration of installer applications:
  • Installer Applications: Added a "Size client area" property. If selected, the specified size refers to the usable client area of the window and not to the outer dimensions of the window.
  • Installer Applications: Added an "Icon can overlap text" property. Now you can use the title bar icon to provide a background for the entire title bar.
  • Installer Applications: Added an "Icon anchor" property for the title bar icon.
  • Installer Applications: Added "Background color for title bar" and "Foreground color for title bar" properties
  • Installer Applications: Added a "Unix mode" property
  • Installer Applications: Added properties to customize the Windows version info
  • Custom installer applications: Added "Show message when user cancels" and "Cancel message" properties
  • More major new features:
  • Merging of other projects allow the modularization of your installers
  • Index pane for the installer that is configurable in the install4j IDE and via the API
  • Support for creating Debian archives
  • Other new features:
  • New icon set for Windows Vista/Windows 7 and all other non-Windows XP platforms
  • Remember window sizes for install4j frames
  • Use configured window size for preview dialogs of form screens
  • Multiple projects can be now opened at the same time in separate windows. The file association for .install4j project files now works on Mac OS X as well.
  • "Display license agreement", "Display information" and "Display text" screens: Files with text are now localizable and can be edited directly in the install4j IDE
  • More lenient error handling for the replacement of installer variables where a text is displayed to the user. Instead of throwing an exception for undefined variables, embed an error message in the replaced text
  • Quick search in file choosers
  • Added new failure strategy for actions: Ask user on failure whether to retry or quit on failure
  • Added a "VM options file" step to the launcher wizard to generate a vmoptions file for a launcher. On Mac OS X, the contents are merged automatically with the static VM options.
  • Allow URLs in Javadoc configuration
  • "Use online documentation" option in Java editor settings dialog to eliminate script warnings with Internet Explorer
  • Cross-platform icons can now be defined more flexibly with multiple arbitrary sizes. Note that the icon configuration of installer applications is now in a regular property instead of a separate tab.
  • Installation components: The "Mandatory" option has been changed into a "User can change selection state" option for more flexibility
  • "Installation components" screen: Added a "Selection change script" property
  • "Set the modification time of files" action: Added a "Recursive" property
  • "Create program group" action: Configurable menu name for the uninstaller
  • "Create program group" action: Added support for URL entries
  • Decoupled "Create program group screen" and "Create program group" action, so that multiple "Create program group" actions can be added. Variables are now set by the screen and the action uses those variables.
  • "Create program group" and "Program group selection" screen: Added an option to emit a warning if the selected program group already exists
  • "Copy files and directories" action: Added a "Show progress" property
  • "Display license" screen and "Display text" screen: Added a "Variable name" property to save the actually displayed text to a variable.
  • Banner screens: Added a "Banner image anchor" property
  • "Install files" action: Added a "Save downloaded files" property to save downloaded installation components for later reuse
  • "Install content of ZIP file" action: Added a "File filter" property
  • Changed the installation log file format to be less verbose and more readable
  • Help argument for installers (-h or-help or /?) that shows the user which common options are available
  • Installers: On a fatal error, try to copy the error log file to the media directory and offer the user a button to show the log file immediately
  • Add the possibility to see component descriptions in console mode
  • Replace installer variables and environment variables in VM parameters and arguments for all generated launchers
  • Update installation detection in "Welcome" screen. Added the variable sys.confirmedUpdateInstallation for the user selection in "Welcome" screen. The "Installation location" and "Create program group" screens are skipped if this variable contains Boolean.TRUE.
  • Added a /create-i4j-log command line parameter for generated Windows executable to easily create and show a native debug log file
  • Installation components can now be hidden from the user. They can be configured in the install4j IDE so that they are initially hidden.
  • Unix launchers: Added a INSTALL4J_JAVA_PREFIX environment variable to allow the use of sudo or similar in custom scripts
  • VM passthrough parameters (like -J-Xmx512m) are now supported on Unix as well
  • Added a check box on the build section to disable LZMA and Pack200 compression for faster builds
  • LSB support for service scripts
  • The "customCode" sample project now includes an action ManyFeaturesAction that shows most features of the BeanInfo API
  • A "mergedProjects" sample project has been added

API changes:

  • Custom installer applications can now be executed from your own code in the same process with com.install4j.api.launcher.ApplicationLauncher#launchApplicationInProcess(...)
  • Descriptions in BeanInfo classes can now contain HTML tags for formatting and hyperlinks
  • Support for editable text and HTML files, see com.install4j.api.beaninfo.FilePropertyDescriptor#setFileContentType(FileContentType)
  • Added com.install4j.api.beans.LocalizableExternalFile for file properties that can be localized by the user in the IDE
  • Support for properties with type File[] in all beans, allowing users to select multiple files from the distribution tree
  • Java 5 enum properties are now supported without having to use com.install4j.api.beaninfo.EnumerationMapper
  • Added com.install4j.api.beaninfo.Install4JBeanInfo#setCategoryOrder(String[]) to override alphabetical category ordering
  • Added com.install4j.api.beaninfo.ActionBeanInfo#setFullPrivilegesRequired(boolean)
  • Added com.install4j.api.beaninfo.ActionBeanInfo#setComplementaryStartupLink(boolean)
  • Added com.install4j.api.beaninfo.Install4JPropertyDescriptor#CONTEXT_COMPONENT and #CONTEXT_DOWNLOADABLE_COMPONENT for receiving installation components IDs in a String property
  • Added com.install4j.api.beaninfo.Install4JPropertyDescriptor#CONTEXT_VARIABLE_NAME for properties that hold a variable name. The install4j IDE will offer a selector of pre-defined variables.
  • Added com.install4j.api.beans.Anchor
  • Added com.install4j.api.beans.LocalizableExternalFile
  • Added com.install4j.api.beaninfo.Install4JPropertyDescriptor#CONTEXT_ANCHOR_CORNERS, #CONTEXT_ANCHOR_SIDES, #CONTEXT_ANCHOR_HORIZONTAL and #CONTEXT_ANCHOR_VERTICAL for properties of type com.install4j.api.beans.Anchor
  • Added com.install4j.api.formcomponents.LayoutGroup
  • Added com.install4j.api.formcomponents.FormEnvironment#getDesignTimeName(LayoutGroup) and #makeParentGroupVisible(FormComponent)
  • Configurable error handling for the replace(...) methods in com.install4j.api.beans.AbstractBean. The com.install4j.api.beans.VariableErrorHandlingDescriptor can be used to configure error handling for the replacement of installer variables, localization keys and compiler variables at runtime.
  • Added com.install4j.api.context.Context#isRebootRequired()
  • Added com.install4j.api.context.Context#getContentDirectory()
  • Added com.install4j.api.context.Context#getResourceDirectory()
  • Added com.install4j.api.context.Context#runElevated(RemoteCallable, boolean) and #runUnelevated(RemoteCallable)
  • Added com.install4j.api.context.Context#isUpdateInstallation() indicating if an update installation was chosen in the "Welcome" screen
  • Added com.install4j.api.Util#log(Throwable t)
  • Added com.install4j.api.Util#isAdminGroup()
  • Added com.install4j.api.Util#hasFullAdminRights()
  • Added com.install4j.api.windows.WinUser
  • Added com.install4j.api.windows.WinProcesses
  • Added com.install4j.api.context.InstallationComponentSetup#setHidden(boolean) and #isHidden
  • Added com.install4j.api.context.WizardIndex
  • Added com.install4j.api.context.WizardContext#setWizardIndex(WizardIndex) and #setWizardIndexKey(String)
  • Added installer events for downloading of files com.install4j.api.event.EventType#BEFORE_DOWNLOAD and #AFTER_DOWNLOAD as well as the event object class com.install4j.api.event.InstallerDownloadEvent with the possibility to get URL, download file, download size and download progress.
  • Added com.install4j.api.screens.Screen#isCreateLazily() to avoid screen creation at startup. This is useful if you want to add JAR files with the new method com.install4j.api.context.Context#addToClassPath(File file) after the "Install files" action has run.
  • Added com.install4j.api.context.Context#initializeLazilyCreatedScreens() to create all lazily created screens at once.

Bugs fixed:

  • "Integer text field" form component: For extremely long input, a Double and not a Long was returned
  • "Customizable banner" screen: Installer variables were not replaced in "Info text" property
  • Launcher wizard: "Check -console parameter" check box was always unselected, regardless of actual configuration
  • Fixed problems with service shutdown
  • Do not make paths with contained variables relative when saving the project
  • Paths of manual entries in the "Bundled JRE" step of the media wizard were not made relative when the project was saved
  • Only offer x86 JRE bundles for 32-bit Windows media files and amd64 JRE bundles for 64-bit Windows media files
  • Abort instead of printing a warning if the media file output directory cannot be created
  • The running processes warning message was wrong for add-on installers
  • sys.platform now resolves to "windows-x64" for 64 bit media files (previously "windows")
  • Bean development: Visibility discriminators of nested properties had no effect
  • Do not prevent continuing in the file wizard of the distribution tree if a variable expression does not exists
  • Debug installers now work with both 32-bit and 64-bit JREs
  • Debug launchers are now made executable on Unix and Mac OS X
  • Add -d32 to debug launchers on Mac OS X if 64-bit JREs are not allowed
  • Add configured VM parameters and arguments to debug launchers
  • Print installation directory in unattended mode if installation directory selector is shown and include directory in "no write permission" message.
  • "Create program group" screen: The program group name was not checked for invalid characters
  • For custom installer applications, the title bar icon was always taken from the installer configuration
  • After a project export, sometimes an NPE was thrown when showing a script edit dialog
  • If files could not be deleted or installed and a reboot is required, no other installers can run until the reboot has been performed in order to avoid the corruption of new installations on subsequent restarts
  • Stable naming of external data files for the installer
  • Omit .install4j directory for Unix archives if no generated launchers or custom installer applications are packaged
  • The displayed required sizes were wrong under some circumstances
  • An environment variable that did not exist and was created by the installer was not deleted on uninstallation
  • Delete empty parent folders even if they were not created by the installer
  • Show the initial progress window if the -splash option is specified for an unattended installer
  • The -dir command line option did not override the installation directory in a response file
  • The locale was not set correctly for locales with a country part like pt_BR
  • Fixed Javadoc anchors in script edit dialog on Windows 7
 

Release 4.2.8   |    2010-06-08

New features:

  • New locale: Romanian
  • Comma separated lists are now supported in archive classpath entries, this is useful if compiler variables are used
  • API: Added a new event type EventType.FILE_INSTALLATION_STARTED with an event object com.install4j.api.events.InstallerFileInstallationEvent that gives access to total installation size and file count
  • API: Added com.install4j.api.events.InstallerFileEvent#getFileSize
  • Support for OpenJDK on Windows

Bugs fixed:

  • "Install Files" action: Stop services before checking for running processes
  • "Installation components" screen: Dependency chains of installation components were not getting updated properly in the tree
  • "Run executable or batch file" action: Sometimes a single zero length string argument was passed
  • "Uninstall previous installation" action on Mac OS X: The action did not work correctly when the "Require admin user" action was present
  • "Installation location" screen: Validation error messages were displayed twice if the directory was selected with the chooser button and the user wanted to proceed anyway
  • "Progress display" form component: Fixed a StackOverflow error
  • When saving a project to a new location, paths that started with variables were mistakenly prepended with a relative location
  • i18n messages were not replaced in splash screen text lines
  • Selected and unchangeable components were not installed in console mode
  • Fixed internal error 7 when a lot of processes were started at the same time
  • Environment variables were not replaced in directory entries of the JRE search sequence
  • "Registry and standard locations" search sequence entry did not always choose the newest JVM
  • Windows: Creating a 64-JRE bit bundle from a 32-bit install4j IDE did not work correctly
  • Windows: Launching media files from the build section in the install4j IDE did not work correctly if UAC was turned on
  • If paths in the Installer->Custom code tab contained compiler variables, those variables could not be overridden from the command line
  • Classes in extension JARs could not be accessed in scripts
  • Unix installers: Improved error message if the unpack200 executable fails
  • Set java.library.path explicitly to fix problems on some Windows Server 2003 machines
  • JRE bundles: Run -Xshare:dump only for Sun VMs
  • Use system language instead of principal language on Mac OS X for system menu and dialogs
 

Release 4.2.7   |    2010-02-11

New features:

  • API: added com.install4j.api.Util#isWindows2008()
  • API: Added com.install4j.api.Util#is64BitWindows() to test whether the Windows is a 64-bit Windows regardless of the currently used JRE

Bugs fixed:

  • "Register Add/Remove item" action: The version was not displayed in the installation details of the software registry
  • "Register Add/Remove item" action: Entries from HKEY_CURRENT_USER which were created if an installer did not run with admin privileges were not removed by the uninstaller
  • "Run Executable" action: Do not replace path separators in environment variables
  • "Run executable" and "Execute launcher" actions: On Windows Vista or higher, launching executables in locations with non-ascii characters did not work anymore
  • Multi-language installers could hang after language selection under certain circumstances
  • Error dialog "Could not open message file" could not be displayed in headless modes
  • Under certain conditions, the navigation buttons in the installer were re-enabled before the next screen was shown
  • Mac OS X: Absolute paths for launcher redirection files were not supported
  • Mac OS X: Under certain conditions, a newly mounted installer could not be executed by the updater
  • Mac OS X: Fixed problem with non-ascii characters in description when using multiple file associations
  • Mac OS X launchers: environment variables with the syntax ${VARIABLENAME} were not replaced in redirection files and system properties
  • Windows launchers: fixed hanging processes in single instance mode when parent process exits immediately and many processes were started
  • Some splash screen image files were mistakenly reported as broken by the compiler
 

Release 4.2.6   |    2009-12-14

Bugs fixed:

  • Regression in 4.2.5: Validation in directory chooser validated content in text field instead of user selection
  • Regression in 4.2.5: Directory chooser was sometimes not opened if user clicked on "Browse"
  • Improved the error message that is displayed when the JVM cannot be started.
  • Launchers: Sometimes, the launcher icon was compiled even if the "Add icon to launcher" check box was not selected
  • Installer applications: The cross-platform icons were packaged even when "Customize icon" was deselected
  • "Run executable" action: Setting and clearing the arguments property value lead to the executable being called with a single zero-length argument
  • Custom icon of installer applications: The settings were not saved reliably
  • Installation components that were set to "not changeable" via the API were still displayed by the console installer
  • Installation component folders that contained only mandatory components were not shown with a disabled checkbox
 

Release 4.2.5   |    2009-11-18

New features:

  • "Load response file" action: Added an "excluded variables" property for variables in the response file that should be ignored.
  • "Create a file association" action: Added a "Role" property for Mac OS X to make the file association role configurable as "Viewer or "Editor"
  • "Bundled JRE" step of media wizards with dynamic JRE bundles: Added "Start download without user confirmation, if necessary" check box
  • Added an "Arguments" property to installer, uninstaller and custom installer applications that allows fixed arguments to be passed to the installer application
  • Directory chooser improvements: Rescan when directory is collapsed, new folder button at the bottom, context menu, dragging a file int the tree sets the current selection
  • File and directory chooser components: dragging files to the text field is now possible
  • Installation directory choosers and "customizable directory" screen: Added a "Manual entry allowed" property
  • "Directory selection" screen: Added "Validation script" property
  • All beans with directory choosers: The "validation script" property is now also executed in console mode and when the screen is validated, not only when for chooser button is used
  • Separate field for product name in windows version resource info step of the launcher wizard
  • Added VM parameter -Dinstall4j.suppressStdout=true to prevent status messages from being written to stdout in unattended mode
  • Added VM parameter -Dinstall4j.detailStdout=true to print installed file names to stdout in unattended mode
  • Added VM parameter -Dinstall4j.suppressUnattendedReboot=true to prevent a reboot in unattended mode

Bugs fixed:

  • "Password field" form component: do not trim leading and trailing spaces of passwords
  • Mac OS X install4j ant task did not work with Java 1.6
  • "Add desktop link" action: The action will now try to append .exe on windows if the destination file does not exist
  • Changed desktop file in order to prevent the "untrusted application" message on GNOME
  • Installation directory selectors: In console mode, it was was not checked correctly if the selected directory is suitable
  • "Installation type" screen: Variable sys.installationTypeId was not set in console mode
  • Fixed execution of downloaded update installers with bundled JREs on Unix
  • The generated file classes.jsa of a bundled JRE was not removed when the installer was canceled
  • Fixed compile exception for launchers in excluded file sets
  • Mac OS X: The date in the DMG file was wrong
  • If "Insert after selection" was selected in a bean registry dialog, some beans were inserted in a wrong position
  • Compiler variables could not be used when overriding the message key UninstallerMenuEntry
  • Fixed backspace handling in console mode when using Putty 0.5 and AIX
  • "," is not a bad character for program group names
  • The previous JRE was not restored on rollback
  • API: com.install4j.api.SystemInfo.getPhysicalMemory() did not work for Linux 2.4 kernels
 

Release 4.2.4   |    2009-09-16

New features:

  • Launchers: Added option in redirection step of the launcher wizard to append output to existing redirection files
  • Added a "Console handler" form component
  • Added a "Console screen change handler" property to all installer applications. With this script it is possible to insert a header or custom messages at the beginning of each screen in console mode.
  • Mac OS X media types: Added a "64-bit settings" step that allows you to force the use of a 32-bit JRE. This is necessary on Mac OS X if your application loads 32-bit libraries.
  • All screens and form components with a directory chooser: Added a "Allow new folder creation" property. If selected, a button for creating new folders will be displayed in the chooser dialog.
  • "Replace text in XML files", "Modify a text file" and "Modify a text file with regular expressions" actions: Added "Log replacement text" property that can be disabled for security reasons
  • "File chooser" and "Directory chooser" form components: Support leading ~ for home directory
  • Windows service launchers: Added the option non-interactive after /install to register services that should not allowed to interact with the desktop.
  • Custom localization files can now contain references to compiler variables, installer variables and other i18n keys
  • Added the capability for extensions to contribute localization files (see the "Extensions" help topic)
  • Added an "Arguments" property to installer, uninstaller and custom installer applications that allows fixed arguments to be passed to the installer application
  • API: Added com.install4j.api.windows.WinRegistry#getValueNames
  • API: Added version of com.install4j.api.windows.WinFileSystem#createStartMenuEntry that allows arguments
  • API: Added com.install4j.Util#isAix
  • API: Added com.install4j.api.InstallationComponentSetup#setChangeable(boolean) and isChangeable. With these methods the user can be prevented from changing the selection state of an installation component.

Bugs fixed:

  • Control characters at the beginning of variables that are read from the command line were not removed
  • Fixed a problem when uninstalling file associations for well known file types
  • A listener registered with com.install4j.api.launcher.StartupNotification was not called reliably for a rapid succession of invocations
  • "Key value pair" form component: Missing line break in console mode
  • "File chooser" form component: Leading label was not baseline-aligned
  • "File chooser" and "Directory chooser" form components: The "Validation script" property was not passed a "file" argument
  • "File chooser" form component: If initial directory is empty, the file chooser opened in the temporary directory, this has been changed to the directory where the installer media file is located
  • "Show URL" action: On Unix, the browser was sometimes not shown if the action was added to the "Finish" screen
  • "Register Add/Remove item" action: The keys InstallLocation, VersionMajor and VersionMinor for the uninstaller entry were not set
  • "Execute launcher" action: The action failed on Mac OS X with Java 6 update 4 when "Restart as root" was selected for a preceding "Require admin user" action
  • Fixed starting of elevated launchers on Windows 7
  • Added a workaround for an undefined TMP environment variable
  • "Single radio button" and "Check box" form components: Selection scripts were not executed in console mode
  • "Download file" action: Status label could wrap for long file names and damage the screen layout
  • A log file was left in the temporary directory after installation
  • Formatted text field components did not work correctly in console mode
  • install4j version and build number are now included in the installation log file
  • "Installation type" screen: Component selection could be wrong due to component dependencies
  • The value in a focused form component with formatted text was sometimes not transferred to the bound installer variable when an input validation expression was present
  • Multi-line label form components did not wrap in text in console mode
  • Response files could not have a UTF-8 byte order mark
  • The input validation expression of invisible or disabled text components was always executed when the form was validated
  • Visibility expressions were not executed in unattended mode
  • Canceling a console installer could print an exception
  • Custom installer applications on Mac OS X could not be executed before the "Install files" action had run
  • API: com.install4j.api.windows.WinFileSystem#createStartMenuEntry was not rolled back
 

Release 4.2.3   |    2009-06-18

New features:

  • Added a "Visibility script" to all form components that determines if a form component is shown or not, invoked in both GUI and console modes
  • "Install files" action: Added an "Update bundled JRE" property that allows to prevent the update of an already installed bundled JRE
  • Mac OS X: If defined, use the environment variable INSTALL4J_ARGUMENTS for the command line arguments
  • Installer, Uninstaller and custom installer applications: Added "Windows console executable" property to create executables that open a console and support installations via rsh
  • "Directory chooser" and "File chooser" components: Added a "Validation script" property that can reject user selections performed via the chooser button
  • Unix installers: If the environment variable INSTALL4J_TEMP is defined, it is used as the base directory for self-extraction
  • "Create a file association" action: Added an "Additional parameters" property for additional arguments to be passed to the launcher if invoked via the file association
  • API: Added com.install4j.api.beans.ReplacementMode#PROPERTIES_FILE
  • API: Added com.install4j.context.Context#getMessage(String, Object[]) to avoid explicit use of java.text.MessageFormat
  • Installer applications: Added "Custom watermark text" property

Bugs fixed:

  • Critical: The 1.6 JRE contained in Mac OS X 10.5 Update 4 does not work with installers created by previous versions of install4j. This affects all projects with a minimum Java version of 1.6.
  • File and directory chooser form components: An empty initial value for the file was displayed as the working directory in console mode
  • com.install4j.api.screens.Screen#willActivate() was called before the "Pre-Activation" script
  • Non-existent parent directories in -Dinstall4j.alternativeLogfile were not created
  • "Register Add/Remove item" action: Use current user registry for add/remove entry if system registry is not writable
  • "Installation components" screen: Fixed default selection in console mode when screen was shown multiple times
  • "Installation components" screen: Wrong tooltip was shown if help button was not shown
  • "Installation components" screen: Improved deselection behavior of component folders containing components that depend on each other
  • "Installation components" screen: Selection state of component folder containing dependent components was not always correct
  • "Save installer variables to the Java preference store" action: Package name containing underscores were not supported on Unix
  • Add short name of project to the log file names in the TEMP directory so they can be identified more easily
  • Form components with labels: Custom icons were not displayed in the uninstaller
  • Form component screens: Relative external files were not correctly resolved in preview
  • Calls to com.install4j.api.context.WizardContext#setNextButtonText(String) and similar methods did not enlarge the button if necessary
  • "Replace installer variables in a text file" action: Property "Escape for properties file" had no effect
  • Installation directory selector: On Windows, if the drive letter or the UNC share did not exist, the error message shown to the user mentioned a permission problem
  • Files that were not overwritten due to an overwrite policy were logged as an error in the installation.log file
 

Release 4.2.2   |    2009-04-17

New features:

  • "Execute launcher" action: added "Arguments" property
  • Unix installers: If the environment variable INSTALL4J_KEEP_TEMP=yes is set, the temporary files are not deleted
  • Added an $OUTFILE variable for code signing in case the signing command cannot overwrite the original executable

Bugs fixed:

  • "Display progress" screen: Installer variables in title and subtitle properties were not replaced
  • "Show PDF" action and "Display PDF file" screen: PDFs were shown with a red cross
  • "Register Add/Remove Item" action: Multiple installations of the same installer into different directories would only produce a single item in the software registry
  • "Display text" screen: If "Info text" property was empty, a blank space was left above the text area
  • "Install Files" action: Do not check for running processes if "Install runtime" is not selected
  • "Execute launcher" action and "Show URL" action: On some Linux distributions the launched process could be killed if the installer was terminated immediately
  • Screens could not be added to an empty screen group in the uninstaller
  • Files in file sets that were excluded for a media file were accessed at compile time
  • Code editor: JDKs installed directly under c:\ on Windows could not used for code completion
  • Fixed class cast exception at runtime that occurred when using action groups under certain circumstances
  • Fixed FileNotFoundException at runtime that occurred when the installer exited under certain circumstances
  • Unix: Installer did not terminate correctly if gunzip does not exist
  • Windows: Temporary installer log files were not deleted when an error occurred
  • Windows: If the GUI cannot be displayed due to a broken JRE, a message about an "X-server" was displayed
  • Windows 98: Automatic proxy detection lead to a runtime error
  • Windows 98: Setting an environment variable could lead to a runtime error
  • API: Mac OS X: com.install4j.api.SystemInfo.getPhysicalMemory returned wrong result for machines with more than 2 GB RAM
 

Release 4.2.1   |    2009-02-06

New features:

  • Create program group action: Added a "Fail if symlinks are not created" property
  • "Uninstall previous installation" action: Added properties "Installation directory" and "Only if the same application ID is found" to be able use the action for different and multiple previous installation directories.

Bugs fixed:

  • Do not show the "Create program group" screen on Unix if the "Create symlinks on Unix" property in the "Create program group" action is not selected
  • A ClassNotFoundException could be thrown in the uninstaller on Linux when no mouse movement was made before the bundled JRE was deleted
  • "Run executable or batch file" action: Do not quote arguments without special characters in them (regression in 4.2). This affects batch files only.
  • If the -include-options feature introduced in 4.2 was used, launcher scripts did not work on Solaris
  • "Modify an environment variable on Windows" action: Fixed various problems on uninstallation
  • "Update schedule selector" form component: No question was asked in console mode
  • Unix: Always prevent error messages from the preference store subsystem from being logged to the console
  • The debug attribute of the install4j ant task as described in the documentation did not work
  • Uninstallation of installer files from a sibling directory of the installation directory whose name starts with the name of the installation directory did not work
  • Additional localization files with java.util.Properties format (ending in .properties) were locked while the install4j IDE was open
  • Using backslashes in file names on Unix could lead to an error while saving the project
  • For long-running startup actions, the installer could exit with a timeout
  • Compiler variables did not work correctly in the executable name and executable directory properties of the uninstaller
 

Release 4.2   |    2009-01-20

Explore What's New

New features:

  • Support for including other .vmoptions files with the new -include-options [path to .vmoptions file] VM parameter. This works in the fixed VM parameters as well as the .vmoptions files.
  • Added a "Save installer variables to the Java preference store" action that saves selected installer variables that can be encoded as strings
  • Added a "Load installer variables from the Java preference store" action
  • Launcher API: com.install4j.api.launcher.Variables offers methods to get compiler and installer variables in the launcher and to load and save installer variables from the Java preference store
  • Launcher API: com.install4j.api.launcher.Variables offers methods to access the installer and compiler variables of the installer
  • Added a "Load response file" action
  • Default installer template: Added a "Load response file" action to the "Installation directory" screen to load user input from a previous installation
  • Default uninstaller template: added a "Load response file" action to the startup sequence to load user input from the installer
  • The proxy settings of the default browser are now used on Windows for all downloads
  • "Check for update" and "Download file" actions: Added "Ask for proxy if necessary" property. If deselected and the download fails, no proxy dialog will be displayed.
  • Added installer parameters -Dinstall4j.clearProxyCache=true and -Dinstall4j.showProxyConfig=true to control the proxy cache
  • Server side authentication for downloads is now supported. A dialog for entering user name and password is displayed if the web server requires authentication.
  • Windows GUI launchers: Added an optionally recognized -console parameter that connects stderr, stdout an stdin to the console from which the launcher was invoked
  • Added the option -splash [title] for installer applications that brings up a small progress window if unattended mode is selected with the -q option
  • Added a -wait [timeout in seconds] command line option for installers. In unattended mode on Windows, the installer application will wait for all launchers and installer applications to shut down before starting the installation. If the timeout is reached, it will exit with an error message.
  • Added a filter field in registry dialogs for screens, actions and form components
  • Tool bars now show icons with text. This setting can be changed by right-clicking a tool bar.
  • Show missing files in the distribution tree and on the custom code tab in red
  • Mac OS X: The principal language is now written to the Info.plist file
  • Added a "Missing files at build time" option to "General Settings->Media File Options" that determines the action if a file or directory in the distribution tree is missing. The default setting is now "Print a warning and continue".
  • Added a "Scan directory" entry type on the Installer->Custom code tab
  • All signed JAR files can now be packed with the Pack200 compression (with a lower compression ratio due to a single segment being used)
  • If the "Safe back button" policy is set for a screen, a back button is also displayed if all actions in the previous screen are configured for multiple execution
  • Updater templates: Execute downloaded installers in unattended or console mode depending on how the updater was invoked.
  • Do not set native look and feel for installer applications if the -Dswing.defaultlaf VM parameter is set
  • Added an installer variable sys.preferredJre that is set after the "Install Files" action has run and contains the path to the JRE that will be used by the installed launchers.
  • Added a compiler variable sys.applicationId that contains the application ID of the project
  • If possible, the language selection dialog of a multi-language installer is now displayed in the system language rather than the principal language. There is a new option on the "Languages" tab to always use the principal language.
  • Redirection files of launchers: Absolute paths and environment variables are now supported
  • "Single radio button" form component: Added "Selection script" property to execute code when the user clicks the radio button
  • Added "Default execution mode" property for all installer applications to be able to configure console or unattended execution as the default mode.
  • Added "Fall back to console mode on Unix" property for all installer applications. This is selected by default and switches to console execution mode if no X server is available.
  • Added a "Replace installer variables in a text file" action. Compiler variables and i18n keys are also replaced by this action.
  • Added a "Fail if no replacement occurred" property to all actions that modify files
  • "Copy file" and "Move file" actions now also work with directories and have been renamed accordingly
  • "Run executable or batch file" action: Environment variables can now be set or modified
  • "Run executable or batch file" action: Added "Show windows console" and "Keep console window" properties for Windows in order to show a console window with the output or the executable and optionally keep the console window open
  • "Create program group" action: Added separate options to disable the creation of Unix symlinks and Unix menu entries
  • The "Create start menu entry" action now also works on Linux/Unix
  • "Modify an environment variable on Windows": The changes are now reverted on uninstallation, this behavior can be controlled with the new "Revert on uninstallation" and "Only if not modified" properties.
  • API: com.install4j.api.context.WizardContext now has methods to set the text of the navigation buttons
  • API: added com.install4j.api.UpdateUpdateDescriptor.checkVersion(String version) to check if a version is compatible with the minimum and maximum versions of an update descriptor entry
  • API: Property customizers can now be built with the new classes com.install4j.api.beaninfo.PropertyConverter and com.install4j.api.beaninfo.PropertyCustomizers
  • API: Properties of type java.util.LinkedHashMap get a default editor in the IDE if they are registered with the Install4JPropertyDescriptor.CONTEXT_STRING_TO_STRING_MAP context

Bugs fixed:

  • Help text in property pane on Screens & Actions tab was black on some Vista installations
  • Using a splash screen image in PNG format with an alpha channel lead to a compilation error
  • .vmoptions files on Unix: leading spaces on a line were not ignored
  • Actions could sometimes not be added to screens in the uninstaller
  • Mac OS X: Service were started as the original user if "Restart as root" was selected in the "Require admin user" action
  • The directory name for the uninstaller was sometimes not saved to the project file under some circumstances
  • The uninstaller used the "Custom image for title bar" property from the installer
  • Fixed "Run executable" action on Vista when path contains special characters
  • "Run executable" and "Execute launcher" actions: stderr and stdout were not consumed by default
  • Version comparison for com.install4j.api.updateUpdateDescriptor.getPossibleUpdateEntry() has been improved
  • "Show URL" and "Show file" actions did not always work on Finish screen on Linux / Unix
  • Line endings in .vmoptions files were not adjusted correctly for Windows media files
  • "Single radio button" form component: installer variables were not replaced in the "Radio button label" property
  • Proxy dialog was not big enough in some look and feels
  • Do not warn or fail during a build if a missing file or directory has been excluded for the media file
  • "Create program group" action on Unix: Do not create symlinks in the same directory as the destination file, thereby overwriting the destination file
  • Downloads failed if the wen server reported an unknown file size
  • "Modify an environment variable on Windows" action: If "prepend" or "append" were selected for the "Modification type" property, the variable separator ";" was not inserted if the environment variable already contained a value
  • "Create program group" action on Unix: Symlinks were also created for launchers for which menu integration has been disabled
  • Fixed performance regression in code editor on Windows if JRE 1.6.0_10+ is used
  • Improved error reporting in installation log for actions that modify files
  • The -c and -console parameters did not have any effect on Windows for installer applications other than the installer itself
  • "Delete a node or key in the Java preference store" action: If the key or node did not exist, the action did not fail
  • Added an installer variable "sys.responseFile" that contains the path of the response file if a response file has been specified on the command line with the -varfile option.
  • Windows program group was always set to default value even if a response file was specified on the command line
  • "Installation directory chooser" form component: In console mode, the installation directory was not changed
  • "Installation type screen": The associated label was not selected if the radio button was selected
  • Multi-line string properties could sometimes not be reset to an empty value
  • Mac OS X. CMD+Q was not handled in the installer
  • Pack200 compression could produce archives with a Java 1.6 version number for some archives even if the minimum version of the project was set to 1.5
  • If there were multiple media output directories, the update descriptor updates.xml was only copied to the last one
  • Java editor: There were empty entries in the completion popup for constructor parameters
  • "Radio button group" form component: The initially selected index was not applied from a response file
  • Running the command line compiler with a relative path name for the config file did not correctly resolve resources
  • Java 5 syntax was underlined as an error in the editor on Mac OS X even if the Java minimum version for the project was set to 1.5 or higher
 

Release 4.1.5   |    2008-10-30

New features:

  • "Installation components" screen: An installation directory chooser can now optionally be displayed on this screen
  • Added an "Installation directory chooser" form component in the "Special selectors" category
  • Compiler variables are now also supported in the media output directory and in custom code entries
  • "Install files" action: Added "Installation size calculator" script for changing the minimum required size for the installation. This value is also reported by the "Installation directory" screen.
  • "Install files" action: Added "Install runtime" property. If you deselect this option, the installation directory will not be created and the runtime will not be installed. This is useful for installers that just modify some existing directories.
  • "Directory selection" screen: Added "Allow spaces in directory name" property for Unix installers
  • "Display license" screen: Added "User must scroll to bottom" property
  • It is now possible to user compiler variables that are only defined in an external variable file (passed to the command line compiler with the -f or --var-file parameter) and that are not defined in the project
  • The -f or --var-file command line parameter now supports a list of variable files, separated with semicolons, e.g. --var-file=one.properties;two.properties
  • "Check box" form component: Added "Selection script" property to execute code when the selection is changed
  • Added VM parameter -Dinstall4j.alternativeLogfile=[path] to copy installation log file to an arbitrary location after the installer has finished without moving the log file to the installation directory
  • Added "Create log file for stderr output" property for installer. stderr redirection can now be switched off by deselecting this property.
  • The file name and the the directory of the uninstaller are now customizable
  • Leading labels in all form components are now baseline-aligned with the center component when Java 6 or higher is used
  • API: Added support for organizing properties in a tree with com.install4j.api.beaninfo.Install4JPropertyDescriptor#setParentProperty
  • API: Properties can be hidden depending on the value of their parent property with com.install4j.api.beaninfo.Install4JPropertyDescriptor#setVisibilityDiscriminator
  • API: added focusNextButton() to the com.install4j.api.context.WizardContext

Bugs fixed:

  • Setting the program group via the API did not work correctly multiple times when the "Create program group" screen was also present
  • Windows exe version information: The legal copyright was not set for installer, now it is set to the publisher
  • Windows exe version information for uninstaller and custom installer applications was not set
  • The uninstaller executable was installed even if the uninstaller was disabled on the screens & actions tab
  • Linux/Unix: Fixed startup failure with OpenJDK 1.6.0_10 or higher when compiz is running
  • "Install Service" Action: When adding this action, the icons in the screens & actions tree could disappear under some circumstances
  • "Modify class path" action: Installer variables were not replaced in the class path entries
  • "Recent Projects" menu was always empty on Mac OS X
  • Many keyboard shortcuts were not suitable on Mac OS X
  • Linux/Unix services: The output from nohup is now redirected to /dev/null
  • Newly added screens in the uninstaller were added above the "Startup" sequence
  • Workaround for erroneous virus definition in CA Anti-Virus 2009
 

Release 4.1.4   |    2008-08-22

New features:

  • It is now possible to access environment variables at build-time with the syntax ${compiler:env.variableName}
  • Improved output of com.install4j.api.Console.more(). This also affects the "Display License agreement" and similar screens in unattended mode.
  • Do not append or prepend a value to environment variables on Windows if the appended or prepended value is already contained in the environment variable. This affects API methods in com.install4.api.windows.WinEnvVars as well as actions that modify environment variables.

Bugs fixed:

  • "Modify a text file with regular expressions" action: "Escape for property file" property did not work for chars > 127
  • "Add a desktop link" and "Create quick launch icon" actions: Installer variables were not replaced in "Arguments" and "Tooltip description" properties
  • "Replace text in XML file" action: Fixed NPE if system ID in doctype oft the XML document was not set
  • Custom uninstaller icon was not used
  • Exceptions in "Run script" actions were not annotated with the bean path
  • Launching the install4j IDE from an upgrade installer could fail if used with a floating license
  • The uninstaller of a 4.0 installation did not work after 4.1 add-ons were installed
  • Help texts in property panes were not readable if the Windows classic look and feel was enabled
  • Language auto-detection did not work if principal language was any language other than English
  • Fixed Pack200 compression of JAR files that contain other JAR files
  • Adding additional locales to the resource/messages/languages file required addition of new locale names to all used i18n properties file for multi-language installers to work
  • Fixed NPE for single radio button form component in console mode when there was no initial selection
  • Group conditions were not re-evaluated when moving back and forth
  • Installer log files were not created after canceling the installer if there no actions were executed after a rollback barrier
  • Custom installer applications always showed language selection dialog for multi-language installers
  • Variables at the start of a download URL were not accepted in the "Bundled JRE" step of the media wizard
  • Unix: Links for launchers were also created if they were contained in unselected installation components
  • Mac OS X: "Execute Launcher" action: If the installer required admin privileges, the launcher was started as root and not as the original user
  • Mac OS X: If the installer required admin privileges, daemons were started as root and not as the original user
  • Mac OS X: Buttons on password dialog were not localized
  • Mac OS X: Fixed detection of Java 6 when it was not selected as the default JRE
  • Mac OS X: Fixed problems with startup items when the installation path contained spaces
 

Release 4.1.3   |    2008-06-05

Bugs fixed:

  • The updater templates "Updater with silent version check" an "Updater without version check" were broken
  • Fixed regression with launchers in subdirectories for folder installers on OS X
 

Release 4.1.2   |    2008-06-03

New features:

  • API: added com.install4j.api.Util.isWindows2003()

Bugs fixed:

  • "Display text" screen: The "Screen subtitle" property instead of the "Info text" property was used for the label above the text area
  • "Services" screen: Launcher file paths displayed on Linux/Unix could have wrong file separator character
  • "Check box" form component: Initial selection and text were set after the initialization script ran. This has been reversed.
  • "Apply an XSLT transform" action: Source file did not refer to its installed location
  • "Create program group" screen: If a program group was selected in the list and the create shortcuts for all users check box was toggled, the list was not updated with the new content
  • "Create program group" screen: Multiple selection was possible in the list of program groups
  • "Create program group" action: Installer variables were not replaced in arguments of additional program group entries
  • Screens displaying HTML text: Some HTML files could make the installer hang
  • Fixed problems when defining installation components with non-default file sets
  • Included JRE was not used for language restart
  • Code editor: Exception was thrown when opening the code editor and the custom code contained duplicate entries
  • Code editor: Keyboard shortcuts on Mac OS X inserted additional character
  • Generated launchers in non-default file sets did not work correctly
  • Fixed problem with missing JRE extensions on AIX
  • Could not delete additional languages under General settings->Languages
 

Release 4.1.1   |    2008-04-24

New features:

  • Added VM parameter -Dinstall4j.logEncoding=... for installers to set the encoding of the log file to something other than the default encoding
  • Added a "--faster" command line and ant task option for disabling LZMA and Pack200 compression

Bugs fixed:

  • Main class selector in the launcher wizard did not work anymore
  • Code editor did not work with the Java look and feel (Metal)
  • Code editor: When completion popup was shown more than once, mouse selection was not possible
  • Code editor: accepting a code completion proposal with a double click was not possible
  • Script compiler used default encoding, so that all characters in scripts that were not representable by the default encoding were replaced with question marks
  • "Execute launcher" action: Did not work for external launchers with installer variables in the path name
  • "Create program group" action: Links for external launchers with installer variables in the path name were not resolved correctly
  • "Delete a file or directory action": If the "recurse into directories" option was selected, and the temporary and target directories were on different volumes, all directories were not deleted
  • Fixed exception on Mac OS X for launchers installed with older versions of install4j
  • Design time JDKs were not supported on Mac OS X
  • When clicking the window close button on a screen with the "Quit after screen" property selected, the installer was not finished just like when clicking the "Finish" button
 

Release 4.1   |    2008-04-03

Explore What's New

New features:

  • New Java code editor with code completion, Javadoc and problem analysis
  • Auto-update functionality
  • Custom installer applications
  • Action and screen groups
  • Redesigned screens & actions tab
  • Code gallery with example scripts
  • File sets in the distribution tree
  • Support for Java 6 splash screens
  • Optional comments on all installer elements
  • Installation types
  • PDF screen and action
  • Actions for changing Windows access rights
  • New form component "Single radio button". You can configure coupled form components that are enabled or disabled depending on whether the radio button is selected.
  • New form component "Multi-line HTML label". This component supports http and file links.
  • New form component "Key value pair" form component". This consists of a leading label and a center label.
  • New form component "Hyperlink action label". Instead of showing a URL, you can configure an action script that is executed if the user clicks on the link.
  • New form component "Progress display". This form component can show the progress of actions attached to the containing form screen.
  • New action "Sleep". Do nothing for a specified number of milliseconds.
  • All installer elements can now be disabled. Disabled elements will not be included in the build and will not be validated.
  • Improved error reporting: At run time, if a script throws an exception, the property name, the name of the bean as well as the names of any enclosing beans are reported.
  • XML actions: Added XML parser properties "Validating" and "Download external entities" for xml actions
  • Design time JDK: The same JDK/JRE that is configured for the Java code editor is used for script compilation. This only applies to the runtime library rt.jar, the compiler is bundled with install4j.
  • "Create program group" action: Redesigned configuration of Windows program group entries
  • Installer variables with array values in all string list properties are expanded as separate arguments. See the "List" form component in the jdkSelection sample project for an example.
  • "Installation Location" screen and "Directory chooser" form component: Added property for allowing spaces in directory name for Unix/Linux installers.
  • "Install files" and "Install contents of ZIP file" actions: Added "Delay if necessary" and "Trigger reboot if required" properties for installing on top if used files in Windows.
  • "File associations" screen: Added "Show selection buttons" property for showing buttons that select and unselect all associations.
  • "Display text" and "Display information" screens: Added HTML preview tab in editor
  • Java 6+: Use Java 6 Console API for reading passwords in console installer
  • All installer elements including single actions can now be excluded in the "Customize project->Exclude installer elements" step of the media wizard.
  • Font properties in form components: Possibility to use "0" as font size to get default size. Font name "dialog" yields the default label font.
  • "File chooser" and "Directory chooser" form components: Added property "Manual entry allowed"
  • "Set a variable" action: added "Fail if null" property
  • "Display progress" screen: Added "Initial status message" property
  • Improved many messages in the launcher and the installer
  • "Installation directory display": Display free disk space
  • Windows launchers can now request heap sizes (-Xmx values) of the same maximum size as the default java launchers if the built-in splash screen is not used. Previously the maximum size was reduced due to fragmentation of the address space.
  • Custom localization files are now reloaded in the IDE when they are changed externally
  • Consistent keyboard accelerators in the install4j IDE
  • Consistent display of IDs in the install4j IDE: If ID display is enabled for a view, the ID is shown in brackets after the element.
  • ID display settings are persistent across restarts of the install4j IDE
  • IDs can be printed in the project export by selecting the "Export IDs" check box in the file chooser
  • "List", "Drop-down list" and "Combo box" form components: Added "Selection change script" property that is invoked when the user changes the current selection
  • Added "Scrollable" property for customizable form screens. After de-selecting this property, you can assign remaining vertical space to vertically scalable components such as text areas or lists.
  • "Text area" and "List" form components: Added "Fill extra vertical space" property
  • Scripting: Added methods to wizard context to make selected navigations buttons invisible
  • Scripting: Added formEnvironment script parameter to all script properties of form components
  • Scripting: Added context.goBackInHistory(Screen targetScreen) to move back to a specific screen in the history rather than in the screen sequence
  • Scripting: A reboot can now be triggered with context.triggerReboot()
  • Scripting: Added formEnvironment.resetFormComponents() in order to reset components in loops
  • Scripting: Added formEnvironment.saveFormComponents() to validate and save form components, e.g. for a button form component which needs current values of variables.
  • Scripting: Incompatible change (very low impact): Script parameters are now final which allows them to be used directly in anonymous classes.
  • Scripting: Added "Pre-activation" and "Post-activation scripts" to screens.
  • Scripting: Added ApplicationRegistry.getAddOnApplicationInfoByDir() to get information about installed add-on installers
  • Scripting: Added method requestFocus() method to FormComponent interface
  • API: Incompatible API change (very low impact): Introduced FormPanelContainer to make form panels more configurable. This replaces the Screen#hasFormPanel() and Screen#setFormPanel(...) methods.
  • API: Form components can request remaining vertical space by returning true from the new interface method FormComponent#isFillCenterVertical()
  • API: Added Install4jPropertyDescriptor#setPropertyChangeListener(...) to listen for property changes in the IDE. Changes on other properties are reflected after the listeners have been called.
  • API: com.install4j.api.FileOptions has a new constructor for delaying file installation on Windows if necessary
  • API: Added ReplacementMode I18N_ONLY for use in the AbstractBean#replaceVariables(...) methods
  • API: Added context Install4JPropertyDescriptor.CONTEXT_HTML for string properties that contain HTML
  • API: Added Install4JBeanInfo#setNoticePanel that lets you add a fixed panel at the top of the property editor
  • API: Added context FilePropertyDescriptor.CONTEXT_EXTERNAL_OR_INTERNAL for ExternalFile properties. When the file chooser is invoked, a dialog is shown that explains internal and external files.
  • API: Added com.install4j.api.launcher.ApplicationLauncher
  • API: Added new package com.install4j.api.update for auto-update functionality
  • API: Added Util.getAnnotatedStackTrace() and Util.printAnnotatedStackTrace() to add the bean origin of a stack trace
  • API: Added Util.showPath() to open a file manager for a certain file

Bugs fixed:

  • JRE bundles that only included the client VM did not work on server class Unix machines
  • After renaming a root in the distribution tree, the edit button was not enabled
  • Project was not properly synchronized in some cases when opening a new project
  • When editing a property and opening a new project, the save button could be disabled
  • Mac OS X: CFBundleGetInfoString in Info.plist did not contain the application version
  • XML actions: output files were not closed
  • XML actions: Existing DOCTYPE was not written
  • XML actions: output was not indented
  • Do not execute -Xshare:dump for JRockit JREs
  • Fixed NPE in unattended installer
  • Fixes file deletion problems on Linux
  • Fixed NPE when hitting Ctrl-C while actions are executed in console mode
  • "Show URL" action: URLs with anchors could not be opened
  • "Directory chooser" form component: Tree scrolled if user selected directories near the bottom of the tree
  • Fixed wrong file times for rollback
  • Catch more errors for preference store manipulations
  • "Check box" form components that were not initially selected were not correctly restored by a response file
  • Fixed proxy authentication problems on Linux
  • "Quit after screen" property was not honored by console and unattended installers
  • Console installers and unattended installers did not check the isHidden() and isHiddenForNext() methods of a screen
  • Installer variables were replaced directly when beans were loaded in the runtime, this lead to different behavior in the GUI and console installer
  • "Text area" form component: Editor for initial text was not multi-line.
  • "Append text to file" action: "Text" property was not multi-line.
  • context.goBackInHistory(...) now supports the parameter 0 to loop back to the current screen
  • Compiler variables in i18n messages were not replaced
  • Customizable screens: Installer variables in "Screen title" and "Screen subtitle" properties were not replaced
  • Customizable banner screen: Installer variables in "Info text" property were not replaced
  • Mac OS X: Add bundle identifier to prevent file associations to be connected to different install4j applications on newer OS X 10.4 versions
  • Linux: Exclude shared extensions from java.ext.dirs VM parameter for installer and uninstaller to prevent XML AbstractMethodError due to incompatible library versions
  • The file logger now saves files and directories as relative entries if the path starts with the installation directory. This allows the uninstaller to work for the installation directory even if the user moved the directory.
  • For multi-language installers, Util.getParentWindow() always returned the language selection dialog
  • Project Java versions lower that 1.3 crashed the build
  • Console handler for from screens did no correctly initialize form components. As a consequence, coupled form components were not correctly disabled or enabled in some situations
  • Chains of coupled form components are now supported, i.e. if a form component is disabled, all its coupled form components are disabled as well
  • String properties were always trimmed
  • Linux: Application registry on Linux did not always work with bundled JREs
  • Mac OS X: "Scan directory" class path entries were not dynamic
  • Console installer did not ask for proxy information if no direct internet connection is available
  • Accelerators for next and previous screen (ALT-Right and ALT-Left) did not respect whether the corresponding button was enabled and visible.
  • Using variable expressions of the type ${...} in Regexp properties that were not install4j variables produced an NPE at runtime
  • Selecting the "Installation directory" node in the definition of an installation component did not work
  • Installer variable sys.programFilesDir was only defined on Windows
  • Linux: When compiz is enabled, use MToolkit rather than the default XToolkit in order to avoid blank windows.
  • Temporary files created by Windows launchers are now deleted immediately after exit rather than on the next launch
  • Next and Previous buttons as well as all form components that take user input are now disabled when actions are executed
  • "Installation Directory" screen: Suggest user home if the standard installation directory cannot be written
  • Project export: scripts were not exported with proper indents and line breaks
  • The return code for Unix installers was always 0 even if the installer terminated with an error
  • API: JVMLocator.getJVMLocations() could return duplicate entries
  • A bundled JRE is now installed before other files in the distribution tree, so you can modify the bundled JRE with files in the distribution tree
  • "Install files" action: The AFTER_INSTALL_FILE event did not have the correct success value
  • "Installation components" screen: Component folders were always initially selected in console mode
  • "Directory selection" screen: console mode looped if "Only accept writable directories" property was selected
 

Release 4.0.8   |    2007-11-23

Bugs fixed:

  • IMPORTANT: When closing the preview window of a form screen other than through the close button, all usages of compiler variables in the project were replaced with their default values
  • Fixed problems with ampersands in application and launcher names on Mac OS X
  • Fixed exception on Mac OS X, when "Finish" was clicked without running the "Install Files" action
  • "Run executable" action: Installer variables were sometimes not replaced for redirection files
  • "Text field with integer format" form component: variable could not be saved to response file.
  • Fixed problem with rolling back replaced files
  • Variable chooser button was missing on code signing step in the media wizard.
  • Fixes some messages in the French translation
  • Several UI fixes for Mac OS X 10.5
  • Fixed several problems when overriding system actions, screens and form components provided by install4j
  • Fixed problem when jai-imageio was used in custom code
 

Release 4.0.7   |    2007-10-09

New features:

  • "Check box" form component: added option for inverse coupling on the "Coupled form components" tab
  • "Run executable" action: redirection of stderr, stdout and stdin files
  • "Installation location" screen and "Install files" action: added "Insufficient disk space warning" property
  • Option in registry dialogs and custom class selectors for adding new items after the current selection
  • In addition to 16x16 icons, use 32x32 frame icons for installer frame when Java 6 is used
  • Report origin of script compilation errors in build output
  • Print media file size in build output
  • API: Added FormEnvironment.getScreen() to get access to the enclosing screen from a form component
  • API: Added Context.registerHiddenVariable(String variableName) for variables whose values should not be logged
  • API: formEnvironment is now a parameter for the initialization script of form components

Bugs fixed:

  • [SECURITY] "Password field" form component: variable value was logged to installation log
  • "Run executable" action: if executable is a relative path and the working directory is set, try to find the executable in the combined path
  • "Require admin user" action displayed wrong error message when used in an uninstaller
  • "Directory selection" screen: Changing the variable value did not update the displayed directory value in all cases
  • "Create program group" screen: Changing the installer variables sys.programGroup.allUsers and sys.programGroup.enabled did not update the screen in all cases
  • "Execute launcher" action and "Run executable" action: arguments with spaces were not supported
  • "Hyperlink label" form component: Installer variables in "URL" property were not replaced
  • "List", "Drop-down list" and "Combo box" form components: installer variables were not replaced in list items
  • File installed with an uninstallation policy that excluded updates were not deleted by the uninstaller after updates were installed
  • Menu entry for uninstaller was not localized for multi-language installers if the selected language was not the principal language
  • Fixed NPE in console installer
  • Some special characters in fixed launcher arguments were transformed incorrectly
  • With some Java versions, the installer froze when a shortcut to the desktop directory was placed on the desktop itself
  • Fixed layout problem with list form component and very log entries
  • Form components could not be edited after project reload under some circumstances
  • Context class loader for custom code was set is such a way, that is was not possible to load resources via the custom class loader
  • Workaround for problem with some graphics cards that displayed an empty installer window with JRE 1.5 on Windows
  • Overriding a system variable that could not be overridden lead to inconsistent behavior
  • It is not longer a fatal error if the path of a file entry in the distribution tree does not exist. A message is printed in verbose output if this condition occurs.
  • Do not check URL property of hyper link label component for validity if it contains a variable
  • Custom scripts in Unix launchers had wrong line feed if installers were build on Windows
  • Icons and descriptions of file associations on Windows were not set correctly if multiple file associations were already present
  • Removed erroneous "create program group" question in non-Windows console installers
  • Fixed errors in French translation
  • No error message for class format error when selecting screens, actions and form components from custom code
  • Insertion sequence for copy-paste in uninstallation mode was incorrect
  • There was no default web browser on Unix/Linux. Now, the installer tries to launch firefox as the browser executable before asking for an executable.
  • If a custom 32x32 icon was defined for the installer, it was not used in the body of the language selection dialog
  • No warning was printed if the custom localization file was not used due to a probably unintended override of the principal language in the media file definition
  • Fixed NPE if installation root was set to an undefined installer variable. Now this root is discarded.
  • Since 4.0.6, the first argument to a service launcher was the service name. This has been reverted.
 

Release 4.0.6   |    2007-05-11

New features:

  • "Install files" action: added option to validate the application ID for situations where no "Installation location" screen is present.
  • "Start a Service" action: added option to start the service only if it was installed as an auto-start service
  • "Installation location" screen: added option to suppress the insufficient disk space warning
  • Added a "Button" form component in the new "Action components" category.
  • "Project->Open Sample Project" gives quick access to bundled sample projects
  • Also use 32x32 frame icon for installers if Java 6 is used (visible in lists of open Windows like ALT-Tab on Windows)
  • API: added com.install4j.api.Windows.WinFileSystem.moveWithDelayUntilReboot() to install files after a reboot on Windows
  • API added com.install4j.api.events.InstallerEvent and VARIABLE_CHANGED EventType to listen for changes of installer variable values

Bugs fixed:

  • "Create start menu entry action": multiple instances were not supported
  • "Create a quick launch icon" action: Do not throw an exception if the target file does not exist
  • "Create a file association" action: file associations are now selected by default
  • "Modify a text file" action: file rights were not preserved
  • "Installation location" screen: selection is now updated when user code calls context.setInstallationDirectory()
  • Fixed issues with uninstallation policies "If created, but not for update" and "Always but not for update"
  • Service status command on Unix did not work with the installed script if the service was started with a differently named symbolic link
  • Editing the project while a build was running could lead to a build failure
  • Invalid characters like slashes in installer and uninstaller files names are now replaced with spaces automatically
  • Fixed problem with very large number of installer configuration files in DMG archives
  • Changes in environment variables were not broadcast correctly
  • If Pack200 compression was selected, the unpacker was still run on JAR files that were excluded from Pack200 compression. This could break JAR signatures.
  • Removal of screens, actions and form components had to be confirmed twice
  • Text form components were collapsed to minimum size when width of initial text was longer than available horizontal space
  • Caret position in text form components was not set to 0 after the text was initialized
  • Always suggest previous program group for add-on installers
  • Locales with country code were not properly auto-detected for multi-language installers
  • Added 24x24 image to install4j default icons to fix long wait times for Norton AV on remote drives
  • Using different JAR source files for the same target file for different media file definitions did not work when Pack200 compression was enabled
  • Desktop links did not support Unicode characters
  • File associations were not installed properly on some Windows installations
  • Edits in multi-line string dialog and script edit dialog were lost when auto-save was running at the same time
  • Added -Dinstall4j.logToStderr=true to debug installer/uninstaller scripts
  • FormComponent classes without associated BeanInfo class did not work
  • Screens classes without associated BeanInfo class exposed context parameters
  • Form component dialogs: label icon with relative path was not displayed in preview dialog
  • Media files are now written to the temp directory if the media file output directory is not writable
 

Release 4.0.5   |    2007-03-01

New features:

  • New locale: Brazilian Portuguese
  • Added a "Hyperlink label" form component
  • Added option to exclude all signed JAR files from Pack200 compression (General Settings->Media File Options)
  • Placing an empty *.jar.nopack file next to any JAR file will exclude it from Pack200 compression
  • Support environment variables in the names of redirection files
  • Added option to suppress the initial progress dialog of the installer (Installer->Installer Options>Advanced)
  • Window media wizard: added option to fail if the signing command returns an error code
  • Installer: show the last selected directory in any directory selector if the associated text field is empty
  • -Dinstall4j.logToStderr=true makes installers and uninstallers print the log to stderr as well
  • "Run executable" action: added option to log arguments
  • Modify text file actions: added option for escaping the replaced value for usage in a Java property file
  • "Add an executable to the startup folder on Windows" action: added "Create for all users" property
  • "Install files" action: added option to disable file name display during the installation
  • "Add a desktop link" action: added "Arguments", "Icon file" and "Tool tip description" properties
  • API: Added com.install4j.api.beans.PropertyLoggingInterceptor to allows beans to customize the logged values for their properties
  • Improved custom code sample project, shows enumerated properties and sample form component

Bugs fixed:

  • Formatted text field form components: if no input validation expression was defined, these components did not work
  • If compiler variables with path names were used in installation roots, the path separators were not adjusted for the target platform
  • "Install content of a ZIP file" action: ZIP files were not closed, which could prevent the origin ZIP file from being deleted
  • "Installation location" screen: do not append suggested application directory if the selected directory contains the same application
  • Script compiling was very slow, especially if a project contained many scripts
  • When compiler variables were used in a script, backslashes were not quoted
  • The component directory in the media output directory was not emptied at the beginning of a build
  • Window media wizard: fixed problems with spaces in $EXECUTABLE variable used in code signing command
  • Installer: closing the installer wizard on a finish screen offered an option to rollback
  • Size of the splash screen was not updated before compilation
  • Fixed display problems with Windows Vista in both IDE and installer
  • If the running process check was canceled, the "Uninstall success" screen was shown instead of the "Uninstall failure" screen
  • When an action threw a runtime exception, there was no rollback and the uninstall did not work
  • Installer variables were not supported in parameters for localization keys (e.g. ${i18n:myErrorMessage(${installer:errorCode})})
  • Fixed NPE when "Install service" action acted on an excluded service launcher
  • Client VM was not mandated if the JRE bundle was a bundle that contained only the client VM (*_client_only.tar.gz)
  • Fixed problem with multiple concurrent splash screens on Unix
  • "Configurable banner form" screen: custom banner image property was missing
  • "Create start menu entry" action: do not prepend start menu root directory if target file is absolute (e.g. when using ${installer:sys.programGroupDir} in the target file)
  • Mac OS X: do not write installer language into Info.plist
  • Mac OS X: fixed problem with volume detection
  • Mac OS X: fixed problem with application registry and single bundle installers
 

Release 4.0.4   |    2006-12-20

New features:

  • Actions that use regular expressions: option for quoting values of variables in match and replacement expressions
  • "Add a desktop link" action: added "Create for all users" property
  • "Create a quick launch icon" action: added "Icon file" and "Arguments" properties
  • "Create Program group" action: added "Application categories" property for UNIX desktops
  • "Run executable" action is now called "Run executable or batch file" action and can also execute Windows batch files directly
  • Added installer system variable (sys.logFile) for temporary log file
  • Keep temporary log file if installer quits because of action failure
  • Allow delayed setting of install4j.keepLog system property in the installer

Bugs fixed:

  • SECURITY: password field form component saved clear text to response file, now this is optional, disabled by default and encrypted
  • "Create program group" screen: program group list was not re-populated when the "all users" property was changed
  • "Installation location" screen: selection in directory selector was not synchronized with text field each time it was opened
  • "Installation location" screen: required disk space was not synchronized with selected installation components
  • "Install content of a zip file" action: progress bar information was not correct
  • "Run executable or batch file" action: stdout and stderr streams were not consumed, executables with lots of output would hang
  • "Run executable or batch file" action: installer variables in "Executable", "Working directory" and "Arguments" properties were not replaced
  • "Run executable or batch file" action: if the working directory does not exist, its parents are tried
  • "Show file" action: installer variables in "File" property were not replaced
  • "Show URL" action: installer variables in "URL" property were not replaced
  • "Display text", "Display license agreement" and "Display information" screens: installer variables in text were not replaced
  • "Radio button group" form component: installer variables in "Labels" property were not replaced
  • If the condition expression of the "Finish" screen returned false, the installer did not quit
  • Failure to write a file did not create a corresponding installer log entry
  • Stdout and stderr streams were not consumed when starting installer from build console, installers with lots of output would hang
  • Executing a service launcher with the /start argument on Windows did not return with an error code if it failed to start the service
  • Workaround for some Windows 98 installations where the Windows LAF crashes the 1.4.2 JVM
  • -q and -c installer arguments for quiet and console modes do not have to be the first arguments anymore
  • arguments with quotes in the argument like arg="1 2" were not supported by Windows launchers
  • launchers in archives with spaces in the top-level directory name did not unpack a bundled 1.5+ JRE when started for the first time
  • Custom icon was not displayed for Unix desktop links
  • Mac OS X: the installer variables sys.mediaFile and sys.mediaDirectory now return the location of the DMG archive rather than its mount point
  • External files could be overwritten by add-on installers
  • Icons in update installations were not refreshed on Windows
  • Custom localization keys were not replaced in the preview for form screens
  • Customizable "Program group selection" screen did not work in unattended mode
  • Files for the installer icon were not made relative to the project file
  • Configured custom code could not be used in the Java editor of script properties before building
  • Windows AMD64 JRE bundles were not offered for Windows media files in the "Bundled JRE" step of the media wizard
  • Previous contents of variables of text field components were only used if they were of type "String". Now toString() is invoked on the variable value.
  • Mac OS X: .command file was not included automatically when launcher was included in a component
 

Release 4.0.3   |    2006-11-03

New features:

  • Support JRE bundle paths relative to the project file for the "Manual entry" option in the media wizard

Bugs fixed:

  • Loading of extensions was broken
  • Fixed stack overflow error when building or saving a project with a specific use of custom code
  • If Pack200 was enabled for the project, it was also used for archive media files
 

Release 4.0.2   |    2006-10-30

New features:

  • Create response files to allow running installers with pre-defined user input
  • Ability to specify a zip file containing language specific texts for info and license screens
  • Added an "Only if Undefined" property for the "Set Variable" action
  • Allow escape sequences for the "append text" action

Bugs fixed:

  • Fixed issues with multi-language installers
  • Call screen validation expressions and input validators for unattended installers
  • Call input validators for text and combo box form components on next
  • Fixed a SecurityManager issue with shutting down services
  • Fixed a library dependency problem with Java 6 on older Windows versions
  • Fixed customizable banner screens
  • Service actions added to the service screen itself were executed with default values
  • Fixed issues with recompiled custom code files
  • Compiler variables in action failure error messages were not replaced
  • Fixed an issue with the removal of uninstaller entries in the Windows software control panel
  • Program group entries for console launcher were not created
  • Fixed small layout issues for form screens
 

Release 4.0.1   |    2006-10-13

New features:

  • Added "Remove on uninstall" option to the "Create a symbolic link" action

Bugs fixed:

  • If a component folder was not set to "initially expanded", its selection state was not checked correctly on startup
  • Copying and pasting beans did not work correctly, newly pasted instances could not be renamed and no new ID was assigned to them
  • Non-numeric components in the 4th level of the application version caused an exception in the uninstaller
  • Installer log file was lost if the temp directory was on a different partition than the installer directory
  • "Modify a text file" action did not work if the temp directory was on a different partition than the installer directory
  • Console uninstaller on Unix did not work correctly if a JRE was bundled and not all files were deleted
  • Paths of custom localization files were not made relative if the corresponding project setting was enabled
 

Release 4.0   |    2006-10-09

Explore What's New

New features:

  • Free configuration of installer and uninstaller screens, see the feature list for a list of available screens
  • Free configuration of actions for each screen, see the feature list for a list of available actions
  • Configurable "Form screens" for designing your own installer and uninstaller screens without custom code
  • Configurable error handling and rollback behavior for actions and screens
  • Possibility to enter custom code snippets in special properties of screens, actions and form components
  • Console installers and uninstallers
  • Multi-language installers
  • Multiple installation roots and "magic" folders
  • Installation component tree with optional component descriptions and dependencies
  • Net installers that download selected components at runtime
  • CD installers with externalized data files
  • Support for Microsoft Vista, including configurable execution level and code signing integration
  • Support for 64-bit Windows launchers that work with 64-bit JREs
  • Extensibility: API based on the JavaBeans specification for adding standard screens, actions and form components to install4j
  • Optional Pack200 compression for all JAR files
  • Redesigned variable system with compiler, installer and launcher variables
  • More flexible uninstallation policies for files, including upgrade-sensitive policies
  • Option for replacing dots with underscores in media file names
  • Show warning if hard drive space is insufficient for the installation
  • File associations on Mac OS X can now be activated immediately
  • Multiple launches through a file association on Mac OS X are now reported by the startup notification mechanism
  • Support for media files larger than 2 GB
  • Many new options for configuring the initial state of installer and uninstaller screens
  • Custom icon and name for the application in the Windows Software Control Panel
  • System properties "install4j.appDir" and "install4j.exeDir" are passed to all generated launchers
  • Add-on installers on Mac OS X and Unix now automatically find the appropriate base application
  • /status switch for service launchers
  • Classpath modifications at runtime with -classpath:, -classpath/a: and -classpath/p: in *.vmoptions file
  • Configurable VM parameters for the installer
  • Start menu entries with command line parameters via the "Create program group entry" action
  • Copy service start scripts to /etc/init.d on Unix, if that directory exists
  • Option to make the installer and uninstaller windows resizable or fixed size
  • New installation log file that audits all performed actions
  • Custom icon for installer executables on Windows and Mac OS X
  • Option to use selected installed JAR files for custom code that is used after the "Install files" action
  • Components can be excluded on a per-media file basis
  • Installer and uninstaller screens can be excluded on a per-media file basis
  • Desktop icons and start menu integration on Linux/Unix for freedesktop.org-compatible desktop environments (KDE and Gnome)
  • Installation and uninstallation scripts for RPM media files
  • Offer "Retry" option to the user if the installation of a file did not succeed
  • Previous installations on Unix and Mac OS X are now found by the installer
  • Service launchers do not require anymore that the main method returns after the initialization
  • SWT support
  • API: Redesign of the API to reflect the new runtime architecture
  • API: Many enhancements in the installer and uninstaller context (com.install4j.api.context.*)
  • API: Launchers are now accessible in the API (com.install4j.api.context.LauncherSetup)
  • API: Enhanced installer event listener mechanism (com.install4j.api.event.*)
  • API: New API for accessing Unix-specific file system services (com.install4j.api.unix.UnixFileSystem)
  • API: Enhancements for locating installed JVMs (com.install4j.api.windows.JVMSelector)
  • API: Information about the state of previously installed services available from the API (com.install4j.api.ServiceInfo)
  • API: New Application registry for getting information about existing installations (com.install4j.api.ApplicationRegistry)
  • API: Physical memory and free file system space information available from the API (com.install4j.api.SystemInfo)
  • API: Methods for exporting and importing parts of the Windows registry (com.install4j.api.windows.WinRegistry)
  • API: System compiler variables are now also available at runtime

Bugs fixed:

  • /manual switch had no effect for installers with a statically bundled JRE
  • File associations are only performed if the corresponding launcher is actually installed
  • Absolute class path entries for Windows media files did not work when installer were built on Mac OS X
  • Directory chooser for single bundle media files on Mac OS X always appended "Applications" to the selected directory
  • Improved security for Unix launchers
  • Clicking on "Cancel" in the installer did not pause file installation immediately
  • Improved error messages if no X11 server is available for a GUI installer or uninstaller
  • Installation directory setting the the media file wizard was not used as the bundle name for Mac OS X single bundles
  • Compiling RPM media files did not work with IBM JREs
  • Unix service launchers were passed a "start" parameter
 

Release 3.2.5   |    2006-09-24

Bugs fixed:

  • Do not create symbolic links on Unix if the link directory is the same as the installation directory
  • Timeout when checking for running processes
  • The system variable LANGUAGE_ID could not be overridden from the command line
  • All bug fixes from exe4j 3.1.4 for Windows launchers
 

Release 3.2.4   |    2006-04-24

New features:

  • .vmoptions files are adapted for cross-platform use during compilation

Bugs fixed:

  • Stopping of multiple services on Unix did not work correctly
  • Absolute classpath entries on Mac OS X were not supported
  • JRE download via FTP did not work on some Unix systems
  • "Scan directory" classpath entry did not work with Mac OS X single bundle archives
  • Directory hierarchies without intermediate files were not uninstalled correctly in some cases
  • If non-US-ASCII characters were used for the installer name on Mac OS X, the installer would fail
  • The custom script file for Unix media files was not resolved relative to the install4j project file
  • The optional launcher checkbox on the "Finished" screen did not work correctly in some cases if installation components were used
  • Better error message on Unix if the X libraries are missing or broken
  • Spaces in RPM names were not supported on Linux
  • Standard JVM search location for HP-UX was missing
  • Prevent overriding system variables from the command line
  • Custom startup handler could not set installation directory for quiet installations
  • Windows launchers: all bug fixes and enhancements from exe4j 3.1.3
 

Release 3.2.3   |    2006-01-11

New features:

  • Unix installers now work on Mac OS X as well
  • Universal binaries with Intel x86 stub for Mac OS X installers

Bugs fixed:

  • Service installation on Windows left a temporary file
  • Using the Russian locale for the installer lead to an error in the installer
  • Directories with spaces could not be opened by clicking the hyperlink in the build log
  • Fixed problem with external launchers and Unix file modes that lead to NPE at build-time
  • Better strategy to avoid using GCJ on Unix
  • Fixed font problems with JRE 1.5 for Chinese (Traditional)
  • "variablefile" attribute did not work correctly for install4j ant task when absolute paths were used
 

Release 3.2.2   |    2005-11-22

New features:

  • External launchers are made executable on Unix
  • Download locations for bundled JREs can now contain user variables

Bugs fixed:

  • Launchers now avoid using GCJ/GIJ on Fedora Core 4
  • VM options files (*.vmoptions) could not contain comments on Unix and were not completely fault-tolerant to trailing spaces on Windows
  • Shared JRE installation was not fully rolled back when the installation was canceled
  • Better file association names in Firefox
  • LZMA media files don't work on some older windows 9x machines
  • Windows launchers: all bug fixes from exe4j 3.1.1
  • API: NPE if no JDK is available when calling JVMSelector.getJVMLocations()
  • API: NPE when using WinEnvVars.prependToUserPath() on a non-existing user path
 

Release 3.2.1   |    2005-08-01

New features:

  • floating licenses: added the possibility to reconnect to the license server if the connection is lost

Bugs fixed:

  • ant task did not work with Java 1.3 and below, it is now contained in a separate jar file (bin/ant.jar)
  • fixed problem with LZMA compression in Mac OS X installers
  • creating Mac folder installers without having a launcher defined did not work
 

Release 3.2   |    2005-07-21

New features:

  • optional LZMA compression for installers
  • option to preserve file times and dates for installed files
  • Mac OS X installers are generated as DMG files, Mac OS X archives as .tgz files
  • new locale for Simplified Chinese
  • all new features from exe4j 3.1 for Windows launchers
  • for launchers on Windows and Unix a *.vmoptions file in the same directory is read and each line is added as a separate VM parameter
  • API: added setter methods for ServiceSetup

Bugs fixed:

  • Mac OS X folder media sets did not work if no launcher was defined
  • runtime error when disabling the installation location screen
  • for add-on installers on Windows, the uninstaller entry in the "Software" control panel got the add-on name
  • permission problems with startup items in Mac OS X 10.4 (enterprise edition only)
  • user variable substitution in Installer->GUI options->Header image was broken (enterprise edition only)
  • custom header icon was only used for the installer and not for the uninstaller (enterprise edition only)
  • launchers with user variables in their file names could not be selected in installation components
  • redirection problem on Linux (NPE)
  • deletion of used files by uninstaller is now more robust
  • destination and variableFile attributes in ant target did not resolve file names relative to the project base directory
  • some messages were not localized
  • API: WinEnvVars.setUserSpecific did not work correctly
  • API: WinEnvVars.set now throws an IOException if there are insufficient rights
 

Release 3.1.4   |    2005-03-30

New features:

  • services (startup items) on Mac OS X are now started immediately after the installation
  • service names on Windows can be changed on the command line by passing the name after the /install parameter
  • media file wizard: support absolute file names for manual entry of JRE bundles
  • API: added getApplicationId() and getAddOnInstallerId() methods to com.install4j.api.Context
  • API: added methods to modify selection state of installation components and custom tasks

Bugs fixed:

  • previous installation location was not cleared after uninstallation
  • links for external launchers on Unix were not created
  • changed location of initial temporary directory on Unix to support CD-based installers
  • the "which" command in Unix scripts is not used anymore in order to increase compatibility
  • %INSTALL4J_EXEDIR% ended with a path separator on Windows, but not on Unix
  • the configured VM parameters for a Unix service were also used in the stop script
  • in some rare situations the Windows service manager was not notified when a service was stopped
  • classpath entries were sometimes cut off if they contained environment variables
  • API: StartupHandler.getDefaultInstallationDirectory() did not work correctly
 

Release 3.1.3   |    2005-01-21

New features:

  • new installer language: Chinese (Traditional)
  • logging for JRE-related startup failures of installers and launchers
  • command line switch for install4jc to enter a license key without the GUI
  • added several warnings about possible inconsistencies
  • API: added new path modification methods in com.install4j.api.windows.WinEnvVar
  • generated installers now fully support multi-byte character operating systems
  • optional Mac OS X document icons for file associations
  • possibility to use user variables in text field for the add-on application ID
  • print instructions for dynamic bundling during build
  • JRE bundle wizard now packs jar files with JSR-200 method for 1.5 JREs

Bugs fixed:

  • links to unselected components were created during installation
  • fixes for the Korean and Japanese locales
  • icon for console launchers were not displayed when started from the Windows start menu
  • scan directory classpath entry could include too many files
  • fixed problem with dynamic JRE download via FTP on Solaris
  • relative symlinks to launchers did not work
  • fixed "Too many open files" problem on Linux
  • internationalization improvements for Mac OS X bundles
  • excluding a directory excluded other files that started with the same name
  • executable name in launcher wizard and component view were not always synchronized
  • installer launched application in temp directory instead of installation directory
  • more robust loading of statically bundled JRE
  • workaround for JRE bug with the classic theme of the Windows XP look and feel
  • various bug fixes in the GUI
  • API: com.install4j.api.windows.WinAssociations.getExecutable() was broken
  • API: com.install4j.api.Util.showUrl() was not static
 

Release 3.1.2   |    2004-11-22

New features:

  • full support for Unicode on Windows
  • allow user variables for application ID
  • replaced InitHandler with a more powerful StartupHandler

Bugs fixed:

  • fixed issue with dynamic 1.5 VM bundles on Linux
  • fixed installer script for Gentoo Linux
  • improved version display for installers and entries in the software control panel on Windows
  • improved visual appearance of installers with GTK L&F
  • fixed startup notification issues when opening multiple files concurrently
 

Release 3.1.1   |    2004-11-11

New features:

  • added createShellLink method in com.install4j.api.windows.WinFileSystem that supports arguments
  • added fatalError method in com.install4j.api.Util

Bugs fixed:

  • fixed problem with very long display times for installers when Norton Auto-Protect is enabled
  • fixed visual feedback during rollback
  • fixed problem with startup notification when multiple files where opened at the same time
  • improved error handling for Unix installers if the file is corrupted
  • could not enter user variables for both minimum and maximum Java versions
  • improved handling of HTML in license screen of generated installers
 

Release 3.1   |    2004-10-21

New features:

  • separation of media file types into "installers" and "archives"
  • new archive types: Windows archive, Mac OS X single bundle archive, Mac OS X folder archive
  • all new features from exe4j 3.0 for Windows launchers
  • much improved update awareness
  • possibility to create "add-on" installers to distribute patches and plugins
  • smaller JRE 1.5 bundles by supporting JSR 200
  • possibility to use user variables in the definition of the distribution tree
  • API enhancements and sample code for all custom extension types
  • option to suggest previous installation directory on update
  • option to run the uninstaller before updating an existing installation
  • optional creation of desktop icons on Mac OS X
  • possibility to determine if a file association is intended for Windows and/or Mac OS X
  • Unix launchers: creation of redirection files on demand
  • Windows installer: option to prompt user for reboot after uninstall
  • Windows installer and uninstaller: check that application is not running
  • new application preferences dialog: selectable look and feel, custom browser start command, open last project on startup
  • manual entry for JRE bundle selection in the media file wizard
  • API: custom actions can now force a reboot
  • API: installer context provides access to program group information
  • API: new class com.install4j.api.JVMSelector
  • API: enhancements in com.install4j.api.windows.WinRegistry
  • API: enhancements in com.install4j.api.windows.WinFileSystem
  • API: enhancements in com.install4j.api.windows.WinEnvVars
  • API: user variables are now available in custom extensions through the installer context
  • API: all custom extensions now have an installer context

Bugs fixed:

  • fixed several minor GUI problems under JRE 1.5
  • quotes did not work for VM options on Mac OS X
  • single class custom code entries contained in packages did not work
  • returning false in InitHandler custom extension could produce unexpected behavior
  • version wasn't added to the application title in the Windows system control panel
  • admin privileges were not always correctly required in the media file wizard
  • language should be a top-level entry in the media file wizards
  • X-server exception on Unix is now converted to a more user friendly error message
  • %INSTALL4J_EXEDIR% system variable could not be used in arguments for a launcher
  • removed fallback error mechanism for statically bundled JREs
  • update for statically bundled JREs was not safe
  • patch level JRE version requirements were not supported on Unix
 

Release 3.0.3   |    2004-09-17

Bugs fixed:

  • possible build failure when using jar files for custom code
  • Unix GUI installers: when "shared JRE" option was selected, admin privileges were always required, even if no JRE was bundled
  • definition of the distribution tree: excluding a file or directory excluded other files or directories starting with the same name
  • Unix launchers returned zero exit value if exception was thrown in main thread
  • temporary directory for JRE was not deleted when compiling Unix installation archives
  • trees with check boxes behaved strangely with JRE 1.5
 

Release 3.0.2   |    2004-09-03

New features:

  • the InstallerContext now has a getInstallationComponents() method
  • the new overwrite mode "always ask, including update" in the distribution tree wizards also asks before overwriting previously installed files
  • getDefaultInstallationDirectory() was added to the InitHandler class in the install4j API.

Bugs fixed:

  • it was not possible to enter user variables for the Java minimum and maximum versions
  • it was not possible to enter underscores for the JRE version in the JRE bundle creation wizard
  • Unix launchers did not correctly pass command line parameters with spaces
  • for Unix launchers, it was only possible to pass a single VM parameter with INSTALL4J_ADD_VM_PARAMS
  • com.install4j.api.windows.WinRegistry.deleteValue() did not work in some situations
  • JRE bundle wizard could create faulty bundles that lead to a crash in installer
  • "." as the directory for a generated launcher did not work on Mac OS X and on Unix
  • incorrect locale identifier "cs" instead of "cz" if Czech was selected as the installer language
  • in the Unix installer, "/opt" was suggested even if that directory was empty. "/usr/local" is now suggested in that case instead.
  • internal install4j image files were omitted on non-windows platforms when components were used. Splash screens were not shown in that case.
  • generated launchers were not updated in the distribution tree when you changed their directory in the launcher wizard.
 

Release 3.0.1   |    2004-08-13

New features:

  • option whether to use beta JREs on Windows or not
  • on the JRE versions tab, you can now specify patch levels like 1.4.1_01
  • emit warning during build if installation components are defined and there are files that are not included in any component
  • launchers are now visible in the result tree of the files step and can be selected in the installation component definition

Bugs fixed:

  • backslashes did not work in variable values
  • standalone javadoc documentation was missing