Home

myappjar

myappjar is an open-source packaging framework for Java applications that bundles a JAR, a runtime, and dependencies into a single distribution artifact. It supports Windows, macOS, and Linux, producing native installers and portable archives. The goal is reproducible, secure, and easy deployment of Java software for both enterprise and consumer environments.

The project began in 2020 as an effort to standardize how Java applications are packaged across platforms.

Key features include a modular core engine, a descriptor describing metadata and dependencies, and options to

The architecture separates the core packaging logic from backend installers. A small set of components handles

Typical workflow: supply an application JAR and a descriptor file, then run the bundling command to produce

Usage has grown in mid-sized teams and open-source projects, with regular releases, documentation, and CI/CD integration.

Within the Java packaging ecosystem, myappjar sits alongside tools such as jpackage and various native packaging

It
has
progressed
through
several
releases
with
expanding
installer
backends
and
a
formal
descriptor
format,
and
it
is
maintained
by
an
open
community
of
contributors.
bundle
a
runtime
image
or
rely
on
a
system
JRE.
It
supports
multiple
target
formats
such
as
MSI,
DMG,
AppImage,
DEB
and
RPM;
offers
digital
signing,
update
capabilities,
and
a
plugin
system
for
extending
functionality
with
code
signing,
updater
integration,
and
native
packaging
backends.
manifest
parsing,
dependency
resolution,
and
artifact
assembly,
while
install
backends
generate
platform-specific
installers.
It
supports
multi-arch
bundles,
reproducible
builds,
and
integration
with
common
build
tools
like
Maven
and
Gradle.
a
distribution.
The
result
can
be
tested
locally
and
deployed
to
distribution
channels.
Example
workflow
commands
include:
myappjar
bundle
--descriptor
app.json
--output
dist/myappjar.
Some
criticisms
note
a
learning
curve
for
new
users
and
the
potential
increase
in
bundle
size
when
including
a
runtime.
formats,
offering
a
higher-level
abstraction
for
cross-platform
Java
deployment.