# Interface JavaExecSpec

All Superinterfaces:
  `BaseExecSpec, JavaForkOptions, ProcessForkOptions`

All Known Implementing Classes:
  `JavaExec`

public interface JavaExecSpec extends JavaForkOptions, BaseExecSpec
Specifies the options for executing a Java application.

Since:
  0.9

- ## Method Summary

  Modifier and Type
  Method
  Description
  `JavaExecSpec`
  `args(Iterable<?> args)`
  Adds args for the main class to be executed.
  `JavaExecSpec`
  `args(Object... args)`
  Adds args for the main class to be executed.
  `JavaExecSpec`
  `classpath(@Nullable Object... paths)`
  Adds elements to the classpath for executing the main class.
  `List<String>`
  `getArgs()`
  Returns the arguments passed to the main class to be executed.
  `List<CommandLineArgumentProvider>`
  `getArgumentProviders()`
  Argument providers for the application.
  `FileCollection`
  `getClasspath()`
  Returns the classpath for executing the main class.
  `ListProperty<String>`
  `getJvmArguments()`
  Extra JVM arguments to be to use to launch the JVM for the process.
  `Property<String>`
  `getMainClass()`
  The fully qualified name of the Main class to be executed.
  `Property<String>`
  `getMainModule()`
  The name of the main module to be executed if the application should run as a Java module.
  `ModularitySpec`
  `getModularity()`
  Returns the module path handling for executing the main class.
  `JavaExecSpec`
  `setArgs(Iterable<?> args)`
  Sets the args for the main class to be executed.
  `JavaExecSpec`
  `setArgs(List<String> args)`
  Sets the args for the main class to be executed.
  `JavaExecSpec`
  `setClasspath(FileCollection classpath)`
  Sets the classpath for executing the main class.

  ### Methods inherited from interface BaseExecSpec

  `getCommandLine, getErrorOutput, getStandardInput, getStandardOutput, isIgnoreExitValue, setErrorOutput, setIgnoreExitValue, setStandardInput, setStandardOutput`

  ### Methods inherited from interface JavaForkOptions

  `bootstrapClasspath, copyTo, debugOptions, getAllJvmArgs, getBootstrapClasspath, getDebug, getDebugOptions, getDefaultCharacterEncoding, getEnableAssertions, getJvmArgs, getJvmArgumentProviders, getMaxHeapSize, getMinHeapSize, getSystemProperties, jvmArgs, jvmArgs, setAllJvmArgs, setAllJvmArgs, setBootstrapClasspath, setDebug, setDefaultCharacterEncoding, setEnableAssertions, setJvmArgs, setJvmArgs, setMaxHeapSize, setMinHeapSize, setSystemProperties, systemProperties, systemProperty`

  ### Methods inherited from interface ProcessForkOptions

  `copyTo, environment, environment, executable, getEnvironment, getExecutable, getWorkingDir, getWorkingDirectory, setEnvironment, setExecutable, setExecutable, setWorkingDir, setWorkingDir, workingDir`

- ## Method Details

  - ### getJvmArguments

    @Incubating @Optional @Internal ListProperty<String> getJvmArguments()
    Extra JVM arguments to be to use to launch the JVM for the process. Must be used to set a convention for JVM arguments.
    Since:
      8.1

  - ### getMainModule

    @Optional @Input Property<String> getMainModule()
    The name of the main module to be executed if the application should run as a Java module.
    Since:
      6.4

  - ### getMainClass

    @Optional @Input Property<String> getMainClass()
    The fully qualified name of the Main class to be executed.

    This does not need to be set if using an Executable Jar with a `Main-Class` attribute.

    Since:
      6.4

  - ### getArgs

    @Optional @Input List<String> getArgs()
    Returns the arguments passed to the main class to be executed.
    Since:
      0.9

  - ### args

    JavaExecSpec args(Object... args)
    Adds args for the main class to be executed.
    Parameters:
      `args` - Args for the main class.
    Returns:
      this
    Since:
      0.9

  - ### args

    JavaExecSpec args(Iterable<?> args)
    Adds args for the main class to be executed.
    Parameters:
      `args` - Args for the main class.
    Returns:
      this
    Since:
      0.9

  - ### setArgs

    JavaExecSpec setArgs(List<String> args)
    Sets the args for the main class to be executed.
    Parameters:
      `args` - Args for the main class.
    Returns:
      this
    Since:
      4.0

  - ### setArgs

    JavaExecSpec setArgs(Iterable<?> args)
    Sets the args for the main class to be executed.
    Parameters:
      `args` - Args for the main class.
    Returns:
      this
    Since:
      0.9

  - ### getArgumentProviders

    List<CommandLineArgumentProvider> getArgumentProviders()
    Argument providers for the application.
    Since:
      4.6

  - ### classpath

    JavaExecSpec classpath(@Nullable Object... paths)
    Adds elements to the classpath for executing the main class.
    Parameters:
      `paths` - classpath elements
    Returns:
      this
    Since:
      0.9

  - ### getClasspath

    @Classpath FileCollection getClasspath()
    Returns the classpath for executing the main class.
    Since:
      0.9

  - ### setClasspath

    JavaExecSpec setClasspath(FileCollection classpath)
    Sets the classpath for executing the main class.
    Parameters:
      `classpath` - the classpath
    Returns:
      this
    Since:
      0.9

  - ### getModularity

    ModularitySpec getModularity()
    Returns the module path handling for executing the main class.
    Since:
      6.4