Create Windows Installer for Java Programs

From here:

Open Source Installers Generators in Java

IzPack

IzPack is an installers generator for the Java platform. It produces lightweight installers that can be run on any operating system where a Java virtual machine is available. Depending on the operating system, it can be launched by a double-click or a simple 'java -jar installer.jar' on a shell. The most common use is to distribute applications for the Java platform, but you can also use it for other kinds of projects. The main benefit of IzPack is that it provides a clean and unique way of distributing a project to users using different operating systems.

VAInstall

VAInstall is a multi-platform installer written in Java. It is distributed under the GNU GPL License 2. Through a simple config file, it allows the packager to pick files and directories from various places on disk, and not only one root dir like other installers. The packager can completely reorganize the files and dirs on the destination host. He can choose the install mode for the destination host (graphic, xtra, text or ansi).

Packlet

Packlet is a simple installer tool for Java. A packlet is similar to a zip or tgz file: it packages an application into a single compressed file that can be distributed. Packlet files are Java class files that can be executed on any machine with Java 2 Runtime Environment installed. Executing a packlet brings up an installer gui to configure and unpack the application.

Lift Off Java Installer

Lift Off Java Installer is an installer for Java applications. Highlights are self-extracting class files, minimal requirements for the Java installation on the target system, and cross platform installation.

Mini Installer

A simple package to build self installating programs in Java. The process is script driven, the result is a unique JAR file that the user can double click to execute a wizard-like installation process.

JSmooth

JSmooth is a Java Executable Wrapper that makes a standard Windows executable binary (.exe) from a jar file. It makes java deployment much smoother and user-friendly, as it is able to find a Java VM by itself. When no VM is available, it provides feed-back to the users, and can launch the default web browser to an URL that explains how to download a Java VM. Note: NOT COMPLETELY WRITTEN IN JAVA

Launch4J

Windows native executable (.exe) java application wrapper. Offers native splash screen, application icon, search for JRE or use bundled one, feedback on startup failure, passes command line arguments.

AntInstaller

AntInstaller is an installer framework which uses a simple XML file to define the UI, and Apache Ant as a back end. The installers can therefore do anything Ant can, and are compatible with Ant's extension mechanism. Installers can be packaged as a selfextracting Jar and can run from the command line or a Swing GUI. AntInstall can also be used as a GUI front end for existing Ant builds.

Antigen

Antigen (Ant Installer Generator) is a tool to take an Ant build script, combine it with a GUI and wrap it up as an executable jar file. Its primary purpose is to create powerful graphical installers from Ant scripts.

Java Service Wrapper

The Wrapper makes it possible to install a Java Application as a Windows NT Service. The scripts provided with the Wrapper also make it very easy to install those same Java Applications as daemon processes on UNIX systems. The Wrapper correctly handles user log outs under Windows, service dependencies, and the ability to run services which interact with the desktop.


Deploy the app. from a web site using Java Web Start. Ensure the user has the minimum Java using deployJava.js (linked from the JWS info page).

Update

The Java Plug-In (used to deploy both applets and webstart applications) was deprecated around Java 9 and removed from the API soon after. This is no longer a viable option.


You can use WiX to create Windows Installer package. The package will include the JRE binaries and your compiled application (jar file). Upon installation, the installer unpacks your files to user's computer, creates shortcut that starts your application (app-path\jre\bin\javaw.exe -jar app-path\your-app.jar).

See notes on Redistributing the JRE and in README.


You can use either NSIS or Inno Setup