= Java Binary

Distributions of this type conform to the following file structure:

[source]
----
.
├── LICENSE
├── README
├── bin
│   ├── app
│   └── app.bat
└── lib
    └── app-1.0.0.jar
----

Where:

* the `bin` folder contains executable launcher scripts.
* the `lib` folder contains all required JARs.

Java binary distributions *require* a suitable Java runtime to be installed on the consumer side; they are usually
packaged as Zip or Tar files.

== Creating a Distribution

We recommend using the following plugins to create suitable Java binary distributions:

.Maven

 * link:https://www.mojohaus.org/appassembler/appassembler-maven-plugin/[appassembler-maven-plugin]: generates distribution
 files that follow the expected structure.
 * link:http://maven.apache.org/plugins/maven-assembly-plugin/[maven-assembly-plugin]: packages the distribution as a Zip
 or Tar.

.Gradle

 * link:https://docs.gradle.org/current/userguide/application_plugin.html[application] plugin: generates distribution
 files that follow the expected structure. Also, packages the distribution as a Zip or Tar.

== Packager Support

[%header, cols="<,^"]
|===
| Packager                                       | Supported
| xref:configuration:packagers/chocolatey.adoc[] | {icon_req_y}
| xref:configuration:packagers/docker.adoc[]     | {icon_req_y}
| xref:configuration:packagers/homebrew.adoc[]   | {icon_req_y}
| xref:configuration:packagers/jbang.adoc[]      | {icon_req_y}
| xref:configuration:packagers/scoop.adoc[]      | {icon_req_y}
| xref:configuration:packagers/snap.adoc[]       | {icon_req_y}
|===



