Launch4j project is a cross-platform tool for wrapping Java applications distributed as jars in lightweight Windows native executables.
The executable can be configured to search for a certain JRE version or use a bundled one, and it's possible to set runtime options, like the initial/max heap size.
The wrapper also provides better user experience through an application icon, a native pre-JRE splash screen, a custom process name, and a Java download page in case the appropriate JRE cannot be found.
Here are some key features of "Launch4j":
· Launch4j wraps jars in Windows native executables and allows to run them like a regular Windows program. It's possible to wrap applications on Linux!
· Doesn't extract the jar from the executable.
· Custom application icon with multiple resolutions and color depths.
· Native pre-JRE splash screen in BMP format shown until the Java application starts.
· Process name as the executable filename to easily identify your application.
· Works with a bundled JRE or searches for newest JRE / SDK in given range.
· Opens Java download page if an appropriate Java version cannot be found.
· Supports GUI and console apps.
· Passes command line arguments, also supports constant arguments.
· Allows to set the initial/max heap size.
· JVM options: set system properties, tweak the garbage collection...
· Option to change current directory to the executable location.
· Custom version information shown by Windows Explorer.
· GUI and command line interface.
· Build integration through an Ant task.
· Lightweight: 21 KB!
· It's free and may be used for commercial purposes.
· Includes a sample application and Ant script that automates the build process from Java sources to native executable.
· The wrapped program works on all Windows platforms (98/Me/NT/2K/Xp), launch4j works on NT/2K/Xp, Linux (developed and tested on FC2)
What's New in This Release:
· Support for 64-bit Windows, 64-bit JRE, and IBM JRE was added.
· A Java runtime preference option was introduced.
· It is now possible to set the initial process priority and allow running only a single instance of the application.
· Dynamic initial and maximum heap sizes were added.
· The error reporting was redesigned and now supports custom messages.
· The runtime logging produces more detailed output.
· Various bugs were fixed, and the license was changed to a less restrictive one.