ej-technologiesHOME | SITEMAP | CONTACT
COMPANY|NEWS|PRODUCTS|DOWNLOAD|SUPPORT|SHOP
PRODUCTS
Products
All Products
 
Overview
 
Top 10 Reasons
 
Features
Features Overview
Editions
What's New in 4.1
What's New in 4.0
 
Demos
 
Testimonials
 
Customers
 
Screenshots
 
Documentation
 
Download
 
Order
Latest Versions
JProfiler: 5.1.4
 (2008-05-30)
install4j: 4.1.3
 (2008-06-05)
exe4j: 4.1
 (2008-04-03)
jclasslib: 3.0
 (2005-01-14)
 
Features of install4j

Please also check out the What's new pages for recent releases:

install4j comes in two editions, the Multi-Platform Edition and the Windows Edition. To check the differences between the two editions please see the edition comparison.

install4j offers the following features:

Extensive Platform Support  
install4j creates media files for all mainstream platforms:
All 32-bit versions of Windows  
  The native installer executables generated by install4j run on Windows 95, 98, ME, NT, 2000, XP, 2003, 2008 and Windows Vista. As a fallback, ZIP archives can be created that contain the distribution tree and the generated launchers.
64-bit Windows  
  Besides the default 32-bit installers for Windows, install4j can generate 64-bit installers for Windows XP x64, Windows Server 2003 x64, Windows Server 2008 x64 and Windows Vista x64. In this case, all generated launchers are 64-bit executables as well. 64-bit executables will run with 64-bit JREs on 64-bit Windows installations.
Full support for Windows Vista  
  Installers generated by install4j fully support Windows Vista. Windows installers will ask for the highest available rights on Windows Vista automatically. If your installers require admin rights, you can optionally require the corresponding execution level. In that case, Windows Vista will ask the user to enter the credentials of an administrator account when the installer or uninstaller is executed.
Mac OS X  
  All Mac OS X versions starting with Mac OS X 10.1 are supported by install4j. install4j generates universal binaries for both PPC and Intel platforms. The GUI installer installs your application as a proper application bundle on Mac OS X. Also available is a folder-type installation, that supports application bundles for each launcher. Finally, the single-bundle archive for Mac OS X offers the most convenient installation for simple distributions.
Unix  
  For Unix and Linux, install4j creates installers that run independently of the architecture on all POSIX-compliant systems with a Bourne shell. As a fallback, gzipped TAR archives can be created that contain the distribution tree and the generated launchers.
Linux RPM  
  An RPM file lets your Java application be part of the most widely used package management system used on Red Hat, SUSE, Mandrake and many other distributions. install4j supports pre-install, post-install as well as pre-uninstall and post-uninstall scripts for RPM media files.
IDE and Compiler  
install4j makes designing and building installers easier than ever:
Easy to use IDE for designing installers  
  The install4j IDE enables you to get started immediately, without the need to become an expert in installer software. Important hints are displayed directly in the IDE, the context sensitive help gives you background information.
Powerful built-in script editor  
  Scripts in install4j are regular Java code. install4j's built in editor offers code completion for for both install4j API, JRE runtime classes and your own custom code. Context-sensitive Javadoc and instant problem analysis are available in the editor.
Code gallery with example scripts  
  To get started with scripting, the code editor offers a code gallery that shows you example scripts for common problems. Also, the sample projects contain many scripts that show how scripting works in install4j.
Build from within the IDE  
  Projects can be built directly in the IDE. Generated installers can be launched directly from the build console.
Command line compiler  
  With the command line compiler in install4j, you can integrate installer generation into arbitrary build processes.
Ant task  
  install4j provides a task for the popular build tool ant to integrate installer generation into your build files.
Build on any platform  
  install4j can build media files for any supported platform on any supported platform.
Build debug installers  
  install4j can optionally generate debug installers that are started from batch files and shell scripts. Debug builds enable you to start the installer and uninstaller directly from your IDE for debugging your custom code.
XML project file  
  A project in install4j is saved to a single XML file. The file format is stable and ideally suited for version control. Advanced customizations or automatic generation of projects are possible by modifying or creating project files.
Project export to HTML  
  Projects can be exported to HTML for review, publishing or printing. All aspects of the project configuration are exported.
Construction of a Distribution Tree  
install4j's GUI allows you to:
Freely define your distribution tree  
  To each directory in the distribution tree you can add the contents of entire directories or single files from arbitrary directories in your file system. The definition view and the results view give you full control over the files that will be distributed by your installers.
Configure multiple installation roots  
  Besides the default installation directory, you can create additional installation roots. Installation roots can correspond to pre-defined "magic folders", like the Windows system directory or the user home directory. Alternatively, an installation root can contain installers variables that are resolved at runtime. This mechanism facilitates plugin installations and system extensions.
Configure multiple file sets  
  If you want to decide at runtime which files should be installed or if you need to ship alternative files for different configurations, you can create additional file sets in the distribution tree.
Use compiler variables in the distribution tree  
  With compiler variables, you can adjust the distribution for each media files by overriding variables in the media file wizard.
Handle platform-specific differences  
  install4j offers convenient include/exclude mechanisms that let you tailor your distributions in a platform specific manner.
Define file rights for Unix, Linux and Mac OS X  
  For each element in the distribution tree, you can define custom access rights for installation on Unix-like platforms.
Define fine-grained uninstallation policies  
  For each element in the distribution tree, you can specify a different uninstallation policy that tells the uninstaller under what circumstances a file should be removed. Special uninstallation policies are provided for updates.
Define fine-grained overwrite policies  
  For each element of the distribution tree, you can set a different overwrite policy that determines what install4j will do when it has to overwrite files during an installation. Special overwrite policies are provided for updates.
Define a tree of installation components  
  You can define groups of files and directories that constitute separate installation components. Installation components and component folders can be arranged into a tree. They can be assigned descriptions that the user can display in the installer to learn more about the installation components. In addition, you can configure dependencies between installation components. Installation components are the basis for installer data files and can optionally be downloaded on demand (see below).
Compilation of Native Launchers  
install4j launchers have the following features:
Customized JRE/JDK detection  
  The executable can detect appropriate Java JREs and JDKs on the target system. You can also distribute your own JRE on demand (see below). The search sequence, error handling and supported JRE/JDK versions are fully customizable.
Flexible classpath construction  
  The classpath for your Java application can be fully customized to scan directories for JAR files, include specific directories and archives as well as insert environment variables. Customizable error handling allows you to interrupt the startup sequence with a helpful error message avoiding NoClassDefFound exceptions later on.
GUI and console launchers  
  For regular applications, install4j generates GUI launchers or console launchers with an associated terminal window.
Service launchers  
  install4j offers full support for generating and installing services (daemons). For services, install4j generates service executables on Windows, startup items on Mac OS X and start/stop scripts on Unix/Linux platforms.
Custom working directory  
  If required you can adjust the working directory to a specific directory relative to the executable. This is especially helpful for console applications which can be invoked from arbitrary directories. This way, you don't need to define fragile environment variables like MYAPP_HOME.
VM parameters file  
  For every executable, you can create a user editable VM parameters file (*.vmoptions). In this way, users can adjust VM properties like the maximum heap size. In the *.vmoptions file, you can also adjust the default classpath of the launcher. Everywhere where you can enter VM parameters, install4j supports the use of environment variables.
Enforce single instance on Windows  
  On Windows, you can optionally enforce that only a single instance of your application is running. The launcher API allows you to receive notification or further startups together with any command line parameters.
React to file association startups on Mac OS X  
  On Mac OS X, you can use the launcher API to be notified when a user invokes a file association and your application is already running.
Windows version info resource  
  install4j can generate a version info resource entry in Windows executable. This version info is displayed for example in the property dialog of the Windows explorer. If you wish to obtain the "Designed for Windows" logo, this is an important requirement.
Configurable execution level for Windows Vista  
  On Windows Vista, executables run with restricted rights by default. install4j offers options to elevate the rights of your launcher executable to the highest available rights or to an administrator account.
Custom script for Linux/Unix launchers  
  On Linux/Unix systems you can optionally provide a shell code snippet that is run just before your application is started to make advanced modifications to your environment.
Splash screen  
  For GUI applications, a splash screen gives the users of your application an optimum feedback about application startup. Textual status information about application startup and version information can be freely placed on the splash screen. From within your Java code, this status information can be updated with a simple method call. With install4j's "auto-off" mode activated, the splash screen is hidden, as soon as your application displays a window. On Windows, the splash screen is native and is displayed immediately. Java 6 splash screens are also supported.
Redirection of stderr and stdout  
  The standard output and error streams can be redirected to customized files. This gives you access to valuable information like an exception stack trace on stderr that would otherwise be lost for a Java GUI application. The files for stderr and stdout are only created when necessary, avoiding empty log files.
Startup failure detection  
  No more flashing terminal windows and GUI applications that hang without displaying anything. install4j executables can monitor the stderr output file and display a dialog with helpful information to inform about startup failures.
Custom icon  
  Install4j uses image files to create the icon for your launcher. Windows icons are created that are optimized for Windows XP and have optimal display properties on older versions of Windows as well. You can also specify your own Windows icon file. On Mac OS X, ICNS icon files are used. For Linux/Unix desktops, a .desktop file is created with the specified icon that allows users to easily create further shortcuts on their desktops and start menus.
Custom process name and task bar grouping on Windows XP  
  On Microsoft Windows, install4j launches your Java application in such a way, that the install4j executable and not java.exe or javaw.exe will appear in the task manager. In Windows XP, the task bar grouping will display the name of your executable and the associated icon, instead of a nondescript Java icon and the string "javaw".
Application bundle on Mac OS X  
  With install4j, your applications become first-class citizens on Mac OS X without the need for you to become a Mac expert. On Mac OS X, install4j executables are part of a proper application bundle.
Installers and Uninstallers  
install4j creates installers with the following features:
Support for Java 1.3, 1.4, 1.5 and 1.6  
  Installers generated by install4j run with Java 1.3, 1.4, 1.5 and 1.6, depending on the minimum project requirements that you configure in the install4j IDE.
LZMA and Pack200 compression algorithms  
  By combining the optional LZMA compression algorithm and Pack200 compression for JAR files, you can achieve the best compression ratios available on the market.
GUI installer mode  
  install4j generates professional-looking GUI installers with freely configurable screens and actions. Actions can be added to each screen, so you can visually program your installer in the install4j IDE. Equally configurable uninstallers are generated automatically for each installer.
Console installer mode  
  Every GUI installer optionally supports console installations, where the installer screens are displayed on the terminal. All pre-defined screens and actions in install4j support console mode. The same applies to uninstallers. This is especially useful for installations on headless Unix/Linux servers.
Unattended installer mode  
  Every GUI installer optionally supports unattended installations and uninstallations, where the installer and uninstaller perform the installation automatically and silently without any user input. All pre-defined screens and actions in install4j support unattended mode.
Unified screen and action configuration for all installer modes  
  GUI, console and unattended modes all use the same screen and action configuration. This saves time when developing and testing the installer.
Response files for installers  
  Installers can save user input to an editable response file. In subsequent installations, this response file can be used to pre-define user input or change default settings. This is especially important for unattended installations, but works also for GUI and console installer modes.
Integration for code signing  
  install4j offers a hook for signing Windows installers, uninstallers and the generated launchers. Resources are provided to perform code signing in builds that run on non-Windows platforms. Code signing is important on Windows Vista, where warning dialogs are shown for unsigned executables that want to raise their execution level. Also, users of IE6 and IE7 will be shown warning dialogs when executing downloaded installers that are unsigned.
Localization into many languages  
  Supported languages for the installer wizard are:
  • Chinese (Simplified)
  • Chinese (Traditional)
  • Croatian
  • Czech
  • Danish
  • Dutch
  • English
  • Finnish
  • French
  • German
  • Greek
  • Hungarian
  • Italian
  • Japanese
  • Korean
  • Norwegian
  • Polish
  • Portuguese
  • Portuguese (Brazilian)
  • Russian
  • Spanish
  • Swedish
  • Turkish
Language detection at runtime  
  Installers can be configured to support multiple languages and offer the user to select a language when the installer is started. The language selection dialog can optionally be skipped if the runtime locale matches a configured language.
Rollback if the installation fails or if the user cancels  
  All pre-defined actions in install4j offer full rollback of their modifications. Additionally, it is possible to define rollback barriers, so that partial rollbacks or no rollbacks are performed when the user cancels the installer wizard.
Net installers  
  Selected installation components can be downloaded on demand, so that the download size of the installer becomes smaller. In this way you can handle rarely used components or prepare net-installers that download all installation components.
CD installers  
  Optionally the installer data files can be external files rather than being included in the installer. This is useful for CD installers. so that the startup of the installer is as fast as possible and only the data files for the selected installation components are accessed on the CD.
Configurable icon, window size and images  
  To customize the appearance of your installers and uninstallers, you can specify a different icon for the installer, change the default window size and replace the default images in the installer with your own images.
Installer log file  
  All screen changes and executed actions are written to the installer log file with some actions providing more fine-grained logging, like the "Install files" actions.
JRE Bundling and On-Demand Download of JREs  
With install4j, you can:
Dynamically bundle a JRE  
  In this way the size of the installer is not increased by the inclusion of a JRE. On the target system, if no suitable JRE can be found, the user is prompted whether to download the JRE bundle from your site.
Statically bundle a JRE  
  When defining a media file in install4j, you can select a JRE for bundling. The JRE will be distributed by the installer and used by all the generated launchers. The JRE download wizard in install4j makes it easy to download suitable JRE bundles from ej-technologies' JRE server.
Install a shared JRE  
  You can tell install4j to install a JRE in such a way that other installers created by install4j will find that JRE. The JRE will then be installed to a shared location and not into the installation directory. If you configure a dynamically bundled JRE for multiple installers, the JRE will be downloaded only for the first installer.
Prepare your own JRE bundles  
  If you require a JRE bundle that is not available from ej-technologies' JRE server, you can use the "Create a JRE bundle" wizard to create a JRE bundle from any JRE in your file system. For 1.5+ JREs, JAR files are packed with the Pack200 compression algorithm.
Updates  
install4j actively handles updates of your installations:
Application ID  
  Every project has a unique application ID that enables JRE to detect update installations. You can also use the application ID in the installer API to get information on existing installations.
Suggest previous locations  
  If the application has already been installed, the installer can optionally suggest the previously selected installation directory and the previous program group to the user.
Run the uninstaller for updates  
  With the "Uninstall previous installation" action, you can run the uninstaller of the old installation in unattended mode before the new installation takes place.
Stop deployed services  
  The "Install files" action automatically stops running services before installing the new service executables.
Detect running instances of an application  
  The "Install files" action detects if instances of GUI or console launchers are still running and asks the user to close them before continuing with the installation.
Create "add-on" installers  
  Besides regular installers, install4j can create "add-on" installers that will only install their distribution tree on top of another installation with a specified application ID. This makes it easy to distribute patches for your installations.
Auto-Update Functionality  
install4j provides flexible auto-update functionality for your applications:
Updater templates  
  Auto-updaters need a lot of flexibility to accommodate your specific needs. install4j allows you to customize every aspect of an updater. Several standard updater templates are available. You can add multiple updaters to your project, if there are different scenarios such as a standalone updater and an updater with a silent background check.
Auto-generated update descriptor  
  For every build, install4j creates an update descriptor that you can place on a web server to communicate updates to your users. The update descriptor can be customized to restrict updates to certain installed versions or to transmit comments to the updater.
Flexible update selection logic  
  The logic how an update installer is selected by the updater is not hard-coded. The updater templates contain scripts that can be edited to create more complex update scenarios.
Updater API  
  With the updater API you can check for updates in your own application code. In addition, you can invoke updaters from your application and react to shutdown requests as a new version is installed.
Update schedule registry  
  If you would like to check for updates on a a regular schedule, the update schedule registry API makes it easy to do so in your application code. Also, a special form component is available for letting the user configure the update schedule in the installer.
Flexible Definition of Installer Applications  
The screens & actions tab is the center-piece of the install4j IDE and features:
Custom installer applications  
  In install4j you can not only configure a fully flexible screen and action flow for installer an uninstaller, you can also create custom installer applications that are part of your installations. Custom installer applications look like installers and can use all available screens and actions. If you want to execute certain parts of the installer after the installation, you do not have to code them yourself again in your application.
Screens and action groups  
  You can organize screens and actions into groups to clarify the screen and action flow. Groups have common condition expressions and optional loop expressions. This is especially important for large projects where the amount of screens or actions in the installer is otherwise not manageable.
Re-use of screens and actions with linking  
  You can link to screens and actions as well as to screen and action groups in any part of your installer or custom installer applications. In this way, you can re-use parts of the installation sequence in a custom installer application or construct multiple installation sequences without copying your screen and action definitions.
Disabling of screens, actions and form components  
  By disabling screens, actions and form components, you can effectively comment them out. This makes it easier to develop installer projects as you can quickly build partial installers or add elements for debugging purposes.
Comments  
  In large projects or projects that need to be documented, it is important that the documentation is attached to the definition. In install4j, you can add optional comments to screens, actions and form components. Keyboard accelerators allow you to quickly move between all your comments.
Quick search  
  The quick search function in the screens & and actions tab makes it easy to search for screens and actions or their IDs.
Screens  
install4j's screen system offers:
Configurable screen sequence for installers and uninstallers  
  The screen sequence for installers and uninstallers can be configured in an arbitrary sequence drawing from the pre-defined screens in install4j, screens contributed by installed extensions or your own screens contained in the configured custom code locations.
Standard screens for common tasks  
  Standard screens are fully localized and serve a specific task:
  • Welcome screen for the installer or uninstaller
  • Installation directory selection
  • Display a license agreement and ask the user to accept it
  • Selection of installation type
  • Selection of installation components
  • Standard program group selection
  • Configure file associations with generated launchers
  • Configure services
  • Display additional confirmations, like creation of shortcuts on the desktop
  • Display progress of installation or uninstallation
  • Display information in text or HTML format
  • Finish screen for the installer and uninstaller
Configurable screens  
  Configurable screens are templates that you can use to visually program the installer together with actions.
  • Screen with an image banner on the left side
  • Configurable form with an image banner on the left side
  • Configurable form
  • Directory selection
  • Program group selection
  • Display text
  • Display PDF file (technology by Crionics Inc.)
  • Display progress
All messages in configurable screens can be adjusted.
Form screens  
  Form screens are the most flexible screens in install4j that allow you to quickly configure arbitrary installer or uninstaller screens. Form screens contain a number of form components that are aligned along the vertical axis. You can chose from a wide range of form components:
  • Labels and spacers
  • Option selectors like check boxes, combo boxes, lists, drop-down lists and radio button groups
  • Sliders and spinners
  • Directory and file choosers
  • Password and text fields
  • Formatted text fields
  • Text areas
Form components have optional leading labels that are aligned for the entire form and are highly configurable.
Actions  
install4j's action system offers:
Configurable action sequence for all screens  
  Actions can be added to each configured screen and are executed when the user moves to the next screen. This allows you to program the installer visually in the install4j IDE by wiring together screens and actions. install4j offers a wide range of pre-defined actions. Actions can also come from installed extensions or the configured custom code locations.

At the heart of the action system are the "Install files" and "Uninstall files" actions that take care of the distribution tree, taking into account the user selection of installation components and downloading installation components if necessary.

Actions for scripting the installer or uninstaller  
  install4j provides actions that can change the state of the installer or uninstaller. These actions include running scripts, setting installer variables and configuring the state of the progress bar.
Desktop integration actions  
  install4j provides desktop integration actions for all supported platforms. They include:
  • Adding desktop links on Windows, Mac OS X and Unix desktops
  • Adding executables to the startup folder on Windows
  • Creating a quick-launch icon on Windows
  • Creating file associations on Windows and Mac OS X
  • Creating a program group in the Windows start menu, start menu entries on Unix desktops and launcher links in common locations on Unix
  • Registering an Add/Remove item in the Windows software registry
File operation actions  
  For file modification and installation actions that cannot be handled with the configuration of the distribution tree, a number of file operation actions are provided including:
  • Copying files
  • Moving files
  • Deleting files
  • Setting the modification time of files
  • Creating symbolic links on Unix and Mac OS X
  • Configuring file access modes on Unix and Mac OS X
  • Configuring the owner of files on Unix and Mac OS X
  • Installing the contents of a ZIP file
  • Changing Windows access rights
  • Displaying a PDF file in a cross-platform PDF viewer
Options for the "Finish" screen  
  Actions that are primarily intended for the "Finish" screen of the installer include:
  • Executing a launcher
  • Rebooting the computer
  • Showing a URL in the browser
  • Showing a file in the browser
  • Showing a PDF file in a standalone cross-platform viewer (technology by Crionics Inc.)
Registry and preference store modifications  
  install4j provides actions for modifying the Windows registry and the Java preference store. Keys and values in the Windows registry and nodes and keys in the Java preference store can be deleted, created or changed. On Windows, you can change access rights for registry keys.
Service actions  
  install4j provides actions for installing, starting and stopping services.
Text file modifications  
  Several actions can be used to modify text files, including:
  • Appending to or creating a text file
  • Fixing the line feeds of text files
  • Modifying text files with simple search/replace or with regular expressions
XML file modifications  
  install4j offers actions to modify XML files, such as applying an XSLT transform to an XML file or to replace text in selected nodes in an XML file. These actions are especially useful for deploying to J2EE containers.
Other miscellaneous actions  
  Other actions include:
  • Uninstalling previous installations
  • Adding VM options to an installed launcher
  • Modifying the classpath of an installed launcher
  • Modifying environment variables in Windows
  • Requiring an admin user
  • Executing an arbitrary executable
Variables  
install4j has several variable systems:
Compiler variables  
  Most text fields in the install4j IDE support compiler variables. With compiler variables you can override settings for each media file as well as change settings from the command line or ant task. Compiler variable values can also be queried in the installer and uninstaller.
Installer variables  
  With installer variables you can wire actions and screens together. Form components in configurable form screens save their user input to installer variables that can then be used in other screens or actions. With the "Set a variable" action, you can execute a script to calculate the value of a variable. That variable can then be used in properties of screens, actions and form components.
Launcher variables  
  install4j defines a number of magic launcher variables that you can use to adjust VM parameters and arguments for your launchers.
Localization keys  
  For each configured language, you can specify a custom localization file. You can use the keys in those files to localize your own messages in the installer and uninstaller as well as to override any default messages in install4j.
Installer API  
install4j offers a rich API for installers and uninstallers:
Installer and uninstaller context  
  The context objects are frequently used in code snippets that you enter directly in the install4j IDE. They offer access to important installer or uninstaller functionality.
General services  
  The API in install4j offers several utility classes that give access to information about installed applications, system information not available in the default JRE libraries, locations of installed JREs and JDKs as well as the status of installed services.
Platform-specific services  
  Several platform specific services such as access to the Windows registry or Unix-specific file system operations are exposed in the API.
Installer events  
  You can register installer event listeners in the API to be informed about all action executions, screen changes, file installations and life-cycle events in the installer or uninstaller.
Framework for screens, actions and form components  
  You can quickly implement your own screens, actions or form components by using the appropriate framework in the API (see "Extensibility" below).
JavaBeans framework  
  You can optionally enhance your screens, actions and form components with bean info classes according to the JavaBeans specification in order to make them configurable in the install4j IDE. The API provides a framework that exposes and documents the relevant properties (see "Extensibility" below).
Extensibility  
install4j is extensible:
JavaBeans extension model  
  All screens, actions and form components in install4j - including the pre-defined elements - use the installer API and the JavaBeans specification to present configurable properties to the user. With the rich installer API you can create new beans that are first-class citizens in the install4j IDE. The JavaBeans part is optional, so creating new screens, actions and form components that are not configurable is very straight-forward.
Easy integration of custom code  
  In the install4j IDE you can configure custom code locations that can contain your own implementations of screens, actions and form components. When you add a new screen, action and form component, you can always choose to search the custom code for appropriate classes.
Extensions  
  You can easily bundle your JavaBeans into extension JAR files. Extension JAR files that are placed into the "extensions" directory of an install4j installation are picked up automatically and have their beans inserted into the appropriate registries. If the user uses a contained bean, the extension is automatically deployed to the installer.

© Copyright 2001-2008 ej-technologies GmbH Terms of Use