What is One-JAR?
One-JAR lets you package a Java application together with its dependency Jars into a single executable Jar file.
Who uses One-JAR?
A number of commercial and open-source projects have chosen One-JAR as their
packaging mechanism. Since inception One-JAR has had over 75,000 downloads and shows
a consistent download profile over time, and is used across a variety of operating-systems
Where is One-JAR?
How does One-JAR Work?
One-JAR provides custom classloader that knows how to load classes and resources from
a jars inside an archive, instead of from jars in the filesystem. It discovers dependency jar files based on
the internal structure of the archive, there is no custom code required to do this.
One-JAR archives can be constructed using Ant or Maven2. Your application can be run using
java -jar my-app.jar
Support for One-JAR
An open-source community and professional support are available
- Stateless/Install Free: One-JAR can contain everything needed by an application.
- Friendly: BSD license, no impediments to commercial integration
- Easy: One-JAR tools for Ant & Maven: an SDK and an application generator
- Supports: Spring 3.0.2 and Guice 2.0 application frameworks
- Invisible: One-JAR works transparently, intercepting resource and class loading and redirecting them back inside the One-JAR
- Clean delegation model, allows classes (including main) to be at the top-level of the One-JAR, supports external jars.
- No pollution: dependency jars are not expanded into the filesystem at runtime
- Fast: One-JAR pre-loads all bytecode into memory on startup, making for improved runtime performance.
- Flexible: One-JAR can expand data-files into the file-system, and can be an installer if you want one
- Native: can support Native libraries (does require expansion into a temporary directory)
- Tested: over 140 regression tests with 1500+ lines of test-code in the repository.