Payara Micro JAR Structure

Since Payara Micro

This page details the structure of the currents Payara Micro JAR file.

Payara Micro JAR folder structure

The following is an overview of the file structure for a Payara Micro JAR file:

├── fish
│   └── payara/micro/
│   └── maven/fish.payara.micro/payara-micro-boot/pom.xml
    ├── classes
    ├── deploy
    ├── domain
    ├── lib
    ├── post-boot-commands.txt
    ├── pre-boot-commands.txt
    └── runtime

Structure Descriptions

Here’s a brief summary of the folders an files that belong to the structure shown earlier:

File Description


Payara Micro’s class files.


Contains the Manifest and POM files.


Contains classes which are added to the class path before those in the /runtime folder.


Contains WAR, EAR, and EJB-JAR files for deployment.


Contains the domain.xml, default-web.xml, keystores, login.conf, files, and other files that are written to the temporary file directory.


Contains additional third party dependency jars which will be automatically added to the instance’s classpath.


Contains the core runtime jars.


The System properties file containing Payara Micro runtime flags. This will override runtime flags and can be overridden by command-line arguments.


.txt files containing asadmin commands to execute post boot can also be stored within MICRO-INF. This includes pre-boot-commands, post-boot-commands, and post-deploy-commands.

Nested JAR

Payara Micro has two options for unpacking classes:

Unpacking to File System (--unpack)

By default, Payara Micro will unpack the nested JARs into a temporary directory within the directory specified by either the system property or the command line argument --unpackdir, and then load them as classes.

Unpacking to Memory (--nested)

The --nested argument will load the classes directly from the nested JARs to the memory without unpacking the JARs into a folder, but may slow the booting process.

To start Payara Micro as a nested JAR, use the --nested option as shown:

java -jar payara-micro.jar --nested