Launch4j 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.


  • 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).

Licence: GPL