Starting an Instance

This section details the very basics of starting a Payara Micro instance.

Starting an Instance from the Command Line

To start an instance of Payara Micro from the command line, you simply run the JAR:

java -jar payara-micro.jar

This single command is all you need to run Payara Micro instances; additional configuration options are all part of this command.

Starting an Instance from Persistent Configuration Directory

When using persistent root configuration directory, it is possible to generate a launcher bound to that directory using the command:

java -jar payara-micro.jar --outputlauncher --rootdir $rootDirectory

This will create file $rootDirectory/launch-micro.jar and exit immediately. After that, it is possible to launch Payara Micro with plain

java -jar $rootDirectory/launch-micro.jar

This makes configuration directory self-sufficient and the distribution file (payara-micro.jar) is no longer needed.

Starting an Instance Programmatically

You need to import two classes from the fish.payara.micro package (contained in the Payara Micro JAR, see section Maven Support for instructions on importing this JAR with Maven):

import fish.payara.micro.BootstrapException;
import fish.payara.micro.PayaraMicro;

You can then start an instance with default settings by calling the bootstrap() method from the PayaraMicro class. This initialization will throw a BootstrapException exception, so you will need to surround it with a try-catch, or have the parent method throw the exception.

A simple example is as follows:

import fish.payara.micro.BootstrapException;
import fish.payara.micro.PayaraMicro;

public class EmbeddedPayara{

    public static void main(String[] args) throws BootstrapException{
        PayaraMicro.bootstrap();
    }
}

To start an instance with non-default settings (configuration changes or deploying applications upon startup), you have to call the getInstance() method before using bootstrap(). More details on this can be found in the Configuring an Instance Programmatically section. The use of the getInstance() method does not exclude you from using the default settings however; calling the bootstrap() method on its own (as shown in the example above) is functionally equivalent to calling the bootstrap() method directly after the getInstance() method, such as in the example below:

import fish.payara.micro.BootstrapException;
import fish.payara.micro.PayaraMicro;

public class EmbeddedPayara{

    public static void main(String[] args) throws BootstrapException{
        PayaraMicro.getInstance().bootStrap();
    }
}

The bootStrap() method returns a PayaraMicroRuntime object instance, which is comes with various methods that afford you control over the instance and its cluster after you have bootstrapped it. To take advantage of this, you have to initialize a PayaraMicroRuntime object from the bootStrap method, like so:

import fish.payara.micro.BootstrapException;
import fish.payara.micro.PayaraMicro;
import fish.payara.micro.PayaraMicroRuntime;

public class EmbeddedPayara{
    public static void main(String[] args) throws BootstrapException{
        PayaraMicroRuntime instance = PayaraMicro.bootStrap();
    }
}