Package org.gradle.api.plugins

# Interface JavaApplication

public interface JavaApplication
Configuration for a Java application, defining how to assemble the application.

An instance of this type is added as a project extension by the Java application plugin under the name 'application'.

     plugins {
         id 'application'
     }

     application {
       mainClass.set("com.foo.bar.FooBar")
     }

Since:
  4.10

- ## Method Summary

  Modifier and Type
  Method
  Description
  `ListProperty<String>`
  `getApplicationDefaultJvmArgs()`
  Array of string arguments to pass to the JVM when running the application
  `CopySpec`
  `getApplicationDistribution()`
  The specification of the contents of the distribution.
  `Property<String>`
  `getApplicationName()`
  The name of the application.
  `Property<String>`
  `getExecutableDir()`
  Directory to place executables in
  `Property<String>`
  `getMainClass()`
  The fully qualified name of the application's main class.
  `Property<String>`
  `getMainModule()`
  The name of the application's Java module if it should run as a module.
  `void`
  `setApplicationDistribution(CopySpec applicationDistribution)`

- ## Method Details

  - ### getApplicationName

    Property<String> getApplicationName()
    The name of the application.

  - ### getMainModule

    Property<String> getMainModule()
    The name of the application's Java module if it should run as a module.
    Since:
      6.4

  - ### getMainClass

    Property<String> getMainClass()
    The fully qualified name of the application's main class.
    Since:
      6.4

  - ### getApplicationDefaultJvmArgs

    ListProperty<String> getApplicationDefaultJvmArgs()
    Array of string arguments to pass to the JVM when running the application

  - ### getExecutableDir

    Property<String> getExecutableDir()
    Directory to place executables in

  - ### getApplicationDistribution

    CopySpec getApplicationDistribution()

    The specification of the contents of the distribution.

    Use this `CopySpec` to include extra files/resource in the application distribution.

         plugins {
             id 'application'
         }

         application {
             applicationDistribution.from("some/dir") {
                 include "*.txt"
             }
         }

    Note that the application plugin pre configures this spec to; include the contents of "`src/dist`", copy the application start scripts into the "`bin`" directory, and copy the built jar and its dependencies into the "`lib`" directory.

  - ### setApplicationDistribution

    void setApplicationDistribution(CopySpec applicationDistribution)