A Gradle/Maven plugin that packages Java applications as native executables and installers for Windows, macOS, and Linux.
JavaPackager is a build tool plugin for Gradle and Maven that packages Java applications into native executables and installers for Windows, macOS, and Linux. It solves the problem of distributing Java apps by creating platform-specific packages that can run without requiring users to install Java separately.
Java developers and educators who need to distribute their applications as native packages, especially those targeting multiple operating systems.
Developers choose JavaPackager because it consolidates multiple packaging tasks into a single plugin, supports both major build tools (Gradle and Maven), and produces professional-grade installers without requiring deep platform-specific knowledge.
:package: Gradle/Maven plugin to package Java applications as native Windows, MacOS, or Linux executables and create installers for them.
Generates native executables and installers for Windows (.exe, .msi), macOS (.dmg, .pkg), and Linux (.deb, .rpm, AppImage), covering all major desktop OSes from a single plugin.
Consolidates packaging tasks into one hybrid plugin for both Maven and Gradle, eliminating the need for multiple plugins and complex build chains, as highlighted in its educational origins.
Supports embedding a minimal, customized JRE using jlink, with options to specify modules and reduce distribution size, ensuring standalone app compatibility.
Allows replacement of icons and Velocity templates for platform-specific branding, and supports runtime JVM options via .l4j.ini files for flexible configuration.
Requires separate installation of Inno Setup and WiX Toolset for Windows installers, with commands needing to be in PATH, adding setup complexity and potential environment issues.
The maintainer is actively seeking contributors due to lack of time, which could lead to stalled updates, bug fixes, or feature development, as noted in the README.
With over 30 configurable properties and platform-specific options, it can be overwhelming for simple use cases and prone to misconfiguration, especially for beginners.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.