# JavaExec

@DisableCachingByDefault(because = "Gradle would require more information to cache this task")
abstract class JavaExec : ConventionTask, JavaExecSpec(source)

Executes a Java application in a child process.

Similar to Exec, but starts a JVM with the given classpath and application class.

    plugins {
        id 'java'
    }

    task runApp(type: JavaExec) {
      classpath = sourceSets.main.runtimeClasspath

      mainClass = 'package.Main'

      // arguments to pass to the application
      args 'appArg1'
    }

    // Using and creating an Executable Jar
    jar {
      manifest {
        attributes('Main-Class': 'package.Main')
      }
    }

    task runExecutableJar(type: JavaExec) {
      // Executable jars can have only _one_ jar on the classpath.
      classpath = files(tasks.jar)

      // 'main' does not need to be specified

      // arguments to pass to the application
      args 'appArg1'
    }

Content copied to clipboard

The process can be started in debug mode (see getDebug) in an ad-hoc manner by supplying the `--debug-jvm` switch when invoking the build.

    gradle someJavaExecTask --debug-jvm

Content copied to clipboard

Also, debug configuration can be explicitly set in debugOptions:

    task runApp(type: JavaExec) {
       ...

       debugOptions {
           enabled = true
           port = 5566
           server = true
           suspend = false
       }
    }

Content copied to clipboard

## Constructors

JavaExec
Link copied to clipboard
constructor()

## Properties

conventionMapping
Link copied to clipboard
open val conventionMapping: @Nullable ConventionMapping
description
Link copied to clipboard
@get:Nullable
open var description: @Nullable String
enabled
Link copied to clipboard
open var enabled: Boolean
group
Link copied to clipboard
@get:Nullable
open var group: @Nullable String
impliesSubProjects
Link copied to clipboard
open var impliesSubProjects: Boolean
modularity
Link copied to clipboard
val modularity: ModularitySpec
state
Link copied to clipboard
val state: TaskStateInternal
TASK_ACTION
Link copied to clipboard
val TASK_ACTION: String = "action"
TASK_CONSTRUCTOR_ARGS
Link copied to clipboard
val TASK_CONSTRUCTOR_ARGS: String = "constructorArgs"
Constructor arguments for the Task
TASK_DEPENDS_ON
Link copied to clipboard
val TASK_DEPENDS_ON: String = "dependsOn"
TASK_DESCRIPTION
Link copied to clipboard
val TASK_DESCRIPTION: String = "description"
TASK_GROUP
Link copied to clipboard
val TASK_GROUP: String = "group"
TASK_NAME
Link copied to clipboard
val TASK_NAME: String = "name"
TASK_OVERWRITE
Link copied to clipboard
val TASK_OVERWRITE: String = "overwrite"
TASK_TYPE
Link copied to clipboard
val TASK_TYPE: String = "type"
timeout
Link copied to clipboard
val timeout: Property<Duration>

## Functions

acceptServiceReferences
Link copied to clipboard
open fun acceptServiceReferences(serviceReferences: Set<ServiceReferenceSpec>)
appendParallelSafeAction
Link copied to clipboard
open fun appendParallelSafeAction(action: Action<in Task>)
args
Link copied to clipboard
open fun args(args: Iterable<out Any>): JavaExecSpec
open fun args(args: Array<Any>): JavaExec
Adds args for the main class to be executed.
bootstrapClasspath
Link copied to clipboard
open fun bootstrapClasspath(@Nullable classpath: Array<@Nullable Any>): JavaExec
Adds the given values to the end of the bootstrap classpath for the process.
classpath
Link copied to clipboard
open fun classpath(@Nullable paths: Array<@Nullable Any>): JavaExec
Adds elements to the classpath for executing the main class.
compareTo
Link copied to clipboard
open fun compareTo(otherTask: Task): Int
open fun compareTo(otherTask: Task): Int
configure
Link copied to clipboard
open fun configure(closure: Closure): Task
abstract fun configure(configureClosure: Closure): Task
open fun configure(closure: Closure): Task
Applies the statements of the closure against this task object.
abstract fun configure(cl: Closure): T
conventionMapping
Link copied to clipboard
open fun conventionMapping(property: String, mapping: Callable<out Any>): Task
copyTo
Link copied to clipboard
open fun copyTo(options: JavaForkOptions): JavaExec
Copies these options to the given options.
open fun copyTo(target: ProcessForkOptions): JavaExec
Copies these options to the given target options.
debugOptions
Link copied to clipboard
open fun debugOptions(action: Action<JavaDebugOptions>)
Configures Java Debug Wire Protocol properties for the process.
dependsOn
Link copied to clipboard
open fun dependsOn(paths: Array<Any>): Task
open fun dependsOn(paths: Array<Any>): Task
Adds the given dependencies to this task.
doFirst
Link copied to clipboard
open fun doFirst(action: Closure): Task
abstract fun doFirst(@DelegatesTo(value = Task::class) action: Closure): Task
Adds the given closure to the beginning of this task's action list.
open fun doFirst(action: Action<in Task>): Task
open fun doFirst(actionName: String, action: Action<in Task>): Task
open fun doFirst(action: Action<in Task>): Task
Adds the given Action to the beginning of this task's action list.
doLast
Link copied to clipboard
open fun doLast(action: Closure): Task
abstract fun doLast(@DelegatesTo(value = Task::class) action: Closure): Task
Adds the given closure to the end of this task's action list.
open fun doLast(action: Action<in Task>): Task
open fun doLast(actionName: String, action: Action<in Task>): Task
open fun doLast(action: Action<in Task>): Task
Adds the given Action to the end of this task's action list.
doNotTrackState
Link copied to clipboard
abstract fun doNotTrackState(reasonNotToTrackState: String)
open fun doNotTrackState(reasonNotToTrackState: String)
Do not track the state of the task.
doNotTrackStateIf
Link copied to clipboard
open fun doNotTrackStateIf(reason: String, spec: Spec<in TaskInternal>)
environment
Link copied to clipboard
open fun environment(environmentVariables: Map<String, out Any>): JavaExec
Adds some environment variables to the environment for this process.
open fun environment(name: String, value: Any): JavaExec
Adds an environment variable to the environment for this process.
exec
Link copied to clipboard
open fun exec()
executable
Link copied to clipboard
open fun executable(executable: Any): JavaExec
Sets the name of the executable to use.
finalizedBy
Link copied to clipboard
open fun finalizedBy(paths: Array<Any>): Task
open fun finalizedBy(paths: Array<Any>): Task
Adds the given finalizer tasks for this task.
getActions
Link copied to clipboard
open fun getActions(): List<Action<in Task>>
open fun getActions(): List<Action<in Task>>
Returns the sequence of Action objects which will be executed by this task, in the order of execution.
getAllJvmArgs
Link copied to clipboard
open fun getAllJvmArgs(): List<String>
Returns the full set of arguments to use to launch the JVM for the process.
getAnt
Link copied to clipboard
open fun getAnt(): AntBuilder
open fun getAnt(): AntBuilder
Returns the `AntBuilder` for this task.
getArgs
Link copied to clipboard
open fun getArgs(): List<String>
Returns the arguments passed to the main class to be executed.
getArgumentProviders
Link copied to clipboard
open fun getArgumentProviders(): List<CommandLineArgumentProvider>
Argument providers for the application.
getAsDynamicObject
Link copied to clipboard
open fun getAsDynamicObject(): DynamicObject
getBootstrapClasspath
Link copied to clipboard
open fun getBootstrapClasspath(): FileCollection
Returns the bootstrap classpath to use for the process.
getClasspath
Link copied to clipboard
open fun getClasspath(): FileCollection
Returns the classpath for executing the main class.
getCommandLine
Link copied to clipboard
@Internal
open fun getCommandLine(): List<String>
Returns the full command line, including the executable plus its arguments.
getDebug
Link copied to clipboard
open fun getDebug(): Boolean
Determines whether debugging is enabled for the test process.
getDebugOptions
Link copied to clipboard
open fun getDebugOptions(): JavaDebugOptions
Returns the Java Debug Wire Protocol properties for the process.
getDefaultCharacterEncoding
Link copied to clipboard
@Nullable
open fun getDefaultCharacterEncoding(): @Nullable String
Returns the default character encoding to use.
getDependsOn
Link copied to clipboard
open fun getDependsOn(): Set<Any>
open fun getDependsOn(): Set<Any>
Returns the dependencies of this task.
getDestroyables
Link copied to clipboard
open fun getDestroyables(): TaskDestroyables
open fun getDestroyables(): TaskDestroyables
Returns the destroyables of this task.
getDidWork
Link copied to clipboard
open fun getDidWork(): Boolean
open fun getDidWork(): Boolean
Checks if the task actually did any work.
getEnableAssertions
Link copied to clipboard
open fun getEnableAssertions(): Boolean
Returns true if assertions are enabled for the process.
getEnvironment
Link copied to clipboard
@Internal
open fun getEnvironment(): Map<String, Any>
The environment variables to use for the process.
getErrorOutput
Link copied to clipboard
@Internal
open fun getErrorOutput(): OutputStream
Returns the output stream to consume standard error from the process executing the command.
getExecutable
Link copied to clipboard
@Internal(value = "covered by getJavaVersion")
@Nullable
open fun getExecutable(): @Nullable String
Returns the name of the executable to use.
getExecutionResult
Link copied to clipboard
@Internal
open fun getExecutionResult(): Provider<ExecResult>
Returns the result for the command run by this task.
getExtensions
Link copied to clipboard
open fun getExtensions(): ExtensionContainer
open fun getExtensions(): ExtensionContainer
The container of extensions.
getFinalizedBy
Link copied to clipboard
open fun getFinalizedBy(): TaskDependency
open fun getFinalizedBy(): TaskDependency
Returns tasks that finalize this task.
getIdentityPath
Link copied to clipboard
open fun getIdentityPath(): Path
getInputs
Link copied to clipboard
open fun getInputs(): TaskInputsInternal
@Internal
abstract fun getInputs(): TaskInputs
open fun getInputs(): TaskInputsInternal
Returns the inputs of this task.
getJavaLauncher
Link copied to clipboard
abstract fun getJavaLauncher(): Property<JavaLauncher>
Configures the java executable to be used to run the tests.
getJavaVersion
Link copied to clipboard
@Internal(value = "covered by getJavaLauncher().getMetadata().getLanguageVersion()")
open fun getJavaVersion(): JavaVersion
Returns the version of the Java executable specified by getJavaLauncher.
getJvmArgs
Link copied to clipboard
open fun getJvmArgs(): List<String>
Returns the extra arguments to use to launch the JVM for the process.
getJvmArgumentProviders
Link copied to clipboard
open fun getJvmArgumentProviders(): List<CommandLineArgumentProvider>
Command line argument providers for the java process to fork.
getJvmArguments
Link copied to clipboard
open fun getJvmArguments(): ListProperty<String>
Extra JVM arguments to be to use to launch the JVM for the process.
getLifecycleDependencies
Link copied to clipboard
open fun getLifecycleDependencies(): TaskDependencyInternal
abstract fun getLifecycleDependencies(): TaskDependency
getLocalState
Link copied to clipboard
open fun getLocalState(): TaskLocalState
open fun getLocalState(): TaskLocalState
Returns the local state of this task.
getLogger
Link copied to clipboard
open fun getLogger(): Logger
open fun getLogger(): Logger
Returns the logger for this task.
getLogging
Link copied to clipboard
open fun getLogging(): LoggingManager
open fun getLogging(): LoggingManager
Returns the org.gradle.api.logging.LoggingManager which can be used to receive logging and to control the standard output/error capture for this task.
getMainClass
Link copied to clipboard
abstract fun getMainClass(): Property<String>
The fully qualified name of the Main class to be executed.
getMainModule
Link copied to clipboard
abstract fun getMainModule(): Property<String>
The name of the main module to be executed if the application should run as a Java module.
getMaxHeapSize
Link copied to clipboard
@Nullable
open fun getMaxHeapSize(): @Nullable String
Returns the maximum heap size for the process, if any.
getMinHeapSize
Link copied to clipboard
@Nullable
open fun getMinHeapSize(): @Nullable String
Returns the minimum heap size for the process, if any.
getMustRunAfter
Link copied to clipboard
open fun getMustRunAfter(): TaskDependency
open fun getMustRunAfter(): TaskDependency
Returns tasks that this task must run after.
getName
Link copied to clipboard
open fun getName(): String
open fun getName(): String
Returns the name of this task.
getOnlyIf
Link copied to clipboard
open fun getOnlyIf(): Spec<in TaskInternal>
getOutputs
Link copied to clipboard
open fun getOutputs(): TaskOutputsInternal
@Internal
abstract fun getOutputs(): TaskOutputs
open fun getOutputs(): TaskOutputsInternal
Returns the outputs of this task.
getPath
Link copied to clipboard
open fun getPath(): String
open fun getPath(): String
Returns the path of the task, which is a fully qualified name for the task.
getProject
Link copied to clipboard
open fun getProject(): Project
open fun getProject(): Project
Returns the Project which this task belongs to.
getReasonNotToTrackState
Link copied to clipboard
open fun getReasonNotToTrackState(): Optional<String>
getReasonsNotToTrackState
Link copied to clipboard
open fun getReasonsNotToTrackState(): Set<String>
getReasonTaskIsIncompatibleWithConfigurationCache
Link copied to clipboard
open fun getReasonTaskIsIncompatibleWithConfigurationCache(): Optional<String>
getRequiredServices
Link copied to clipboard
open fun getRequiredServices(): TaskRequiredServices
getSharedResources
Link copied to clipboard
open fun getSharedResources(): List<ResourceLock>
abstract fun getSharedResources(): List<out ResourceLock>
getShouldRunAfter
Link copied to clipboard
open fun getShouldRunAfter(): TaskDependency
open fun getShouldRunAfter(): TaskDependency
Returns tasks that this task should run after.
getStandardInput
Link copied to clipboard
@Internal
open fun getStandardInput(): InputStream
Returns the standard input stream for the process executing the command.
getStandardOutput
Link copied to clipboard
@Internal
open fun getStandardOutput(): OutputStream
Returns the output stream to consume standard output from the process executing the command.
getStandardOutputCapture
Link copied to clipboard
open fun getStandardOutputCapture(): StandardOutputCapture
getState
Link copied to clipboard
@Internal
abstract fun getState(): TaskState
Returns the execution state of this task.
getSystemProperties
Link copied to clipboard
open fun getSystemProperties(): Map<String, @Nullable Any>
Returns the system properties which will be used for the process.
getTaskActions
Link copied to clipboard
open fun getTaskActions(): List<InputChangesAwareTaskAction>
getTaskDependencies
Link copied to clipboard
open fun getTaskDependencies(): TaskDependencyInternal
@Internal
abstract fun getTaskDependencies(): TaskDependency
open fun getTaskDependencies(): TaskDependencyInternal
Returns a TaskDependency which contains all the tasks that this task depends on.
getTaskIdentity
Link copied to clipboard
open fun getTaskIdentity(): TaskIdentity<out Any>
getTemporaryDir
Link copied to clipboard
open fun getTemporaryDir(): File
open fun getTemporaryDir(): File
Returns a directory which this task can use to write temporary files to.
getTemporaryDirFactory
Link copied to clipboard
open fun getTemporaryDirFactory(): Factory<File>
getWorkingDir
Link copied to clipboard
@Internal
open fun getWorkingDir(): File
Returns the working directory for the process.
hasProperty
Link copied to clipboard
open fun hasProperty(propertyName: String): Boolean
open fun hasProperty(propertyName: String): Boolean
Determines if this task has the given property.
hasTaskActions
Link copied to clipboard
open fun hasTaskActions(): Boolean
injectIntoNewInstance
Link copied to clipboard
open fun <T : Task?> injectIntoNewInstance(project: ProjectInternal, identity: TaskIdentity<T>, factory: Callable<T>): T
isCompatibleWithConfigurationCache
Link copied to clipboard
open fun isCompatibleWithConfigurationCache(): Boolean
isEnabled
Link copied to clipboard
open fun isEnabled(): Boolean
isHasCustomActions
Link copied to clipboard
open fun isHasCustomActions(): Boolean
isIgnoreExitValue
Link copied to clipboard
@Input
open fun isIgnoreExitValue(): Boolean
Tells whether a non-zero exit value is ignored, or an exception thrown.
jvmArgs
Link copied to clipboard
open fun jvmArgs(arguments: Iterable<out Any>): JavaExec
open fun jvmArgs(arguments: Array<Any>): JavaExec
Adds some arguments to use to launch the JVM for the process.
mustRunAfter
Link copied to clipboard
open fun mustRunAfter(paths: Array<Any>): Task
open fun mustRunAfter(paths: Array<Any>): Task
Specifies that this task must run after all of the supplied tasks.
notCompatibleWithConfigurationCache
Link copied to clipboard
abstract fun notCompatibleWithConfigurationCache(reason: String)
open fun notCompatibleWithConfigurationCache(reason: String)
Specifies that this task is not compatible with the configuration cache.
onlyIf
Link copied to clipboard
open fun onlyIf(onlyIfClosure: Closure)
abstract fun onlyIf(onlyIfClosure: Closure<out Any>)
open fun onlyIf(onlyIfClosure: Closure)
Execute the task only if the given closure returns true.
open fun onlyIf(spec: Spec<in Task>)
open fun onlyIf(onlyIfReason: String, spec: Spec<in Task>)
abstract fun onlyIf(onlyIfSpec: Spec<in Task>)
@Incubating
abstract fun onlyIf(onlyIfReason: String, onlyIfSpec: Spec<in Task>)
Execute the task only if the given spec is satisfied.
prependParallelSafeAction
Link copied to clipboard
open fun prependParallelSafeAction(action: Action<in Task>)
property
Link copied to clipboard
open fun property(propertyName: String): Any
open fun property(propertyName: String): Any
Returns the value of the given property of this task.
restoreOnlyIf
Link copied to clipboard
open fun restoreOnlyIf(onlyIf: Spec<in TaskInternal>)
restoreTaskActions
Link copied to clipboard
open fun restoreTaskActions(taskActions: List<InputChangesAwareTaskAction>)
setActions
Link copied to clipboard
open fun setActions(replacements: List<Action<in Task>>)
abstract fun setActions(actions: List<Action<in Task>>)
open fun setActions(replacements: List<Action<in Task>>)
Sets the sequence of Action objects which will be executed by this task.
setAllJvmArgs
Link copied to clipboard
open fun setAllJvmArgs(arguments: Iterable<out Any>)
open fun setAllJvmArgs(arguments: List<String>)
Sets the full set of arguments to use to launch the JVM for the process.
setArgs
Link copied to clipboard
open fun setArgs(applicationArgs: Iterable<out Any>): JavaExec
open fun setArgs(applicationArgs: List<String>): JavaExec
Sets the args for the main class to be executed.
setArgsString
Link copied to clipboard
open fun setArgsString(args: String): JavaExec
Parses an argument list from `args` and passes it to setArgs.
setBootstrapClasspath
Link copied to clipboard
open fun setBootstrapClasspath(classpath: FileCollection)
Sets the bootstrap classpath to use for the process.
setClasspath
Link copied to clipboard
open fun setClasspath(classpath: FileCollection): JavaExec
Sets the classpath for executing the main class.
setDebug
Link copied to clipboard
open fun setDebug(enabled: Boolean)
Enable or disable debugging for the process.
setDefaultCharacterEncoding
Link copied to clipboard
open fun setDefaultCharacterEncoding(@Nullable defaultCharacterEncoding: @Nullable String)
Sets the default character encoding to use.
setDependsOn
Link copied to clipboard
open fun setDependsOn(dependsOn: Iterable<out Any>)
abstract fun setDependsOn(dependsOnTasks: Iterable<out Any>)
open fun setDependsOn(dependsOn: Iterable<out Any>)
Sets the dependencies of this task.
setDidWork
Link copied to clipboard
open fun setDidWork(didWork: Boolean)
open fun setDidWork(didWork: Boolean)
Sets whether the task actually did any work.
setEnableAssertions
Link copied to clipboard
open fun setEnableAssertions(enabled: Boolean)
Enable or disable assertions for the process.
setEnvironment
Link copied to clipboard
open fun setEnvironment(environmentVariables: Map<String, out Any>)
Sets the environment variable to use for the process.
setErrorOutput
Link copied to clipboard
open fun setErrorOutput(outputStream: OutputStream): JavaExec
Sets the output stream to consume standard error from the process executing the command.
setExecutable
Link copied to clipboard
open fun setExecutable(executable: Any)
open fun setExecutable(executable: String)
Sets the name of the executable to use.
setFinalizedBy
Link copied to clipboard
open fun setFinalizedBy(finalizedByTasks: Iterable<out Any>)
abstract fun setFinalizedBy(finalizedBy: Iterable<out Any>)
open fun setFinalizedBy(finalizedByTasks: Iterable<out Any>)
Specifies the set of finalizer tasks for this task.
setIgnoreExitValue
Link copied to clipboard
open fun setIgnoreExitValue(ignoreExitValue: Boolean): JavaExecSpec
Sets whether a non-zero exit value is ignored, or an exception thrown.
setJvmArgs
Link copied to clipboard
open fun setJvmArgs(arguments: Iterable<out Any>)
open fun setJvmArgs(arguments: List<String>)
Sets the extra arguments to use to launch the JVM for the process.
setMaxHeapSize
Link copied to clipboard
open fun setMaxHeapSize(@Nullable heapSize: @Nullable String)
Sets the maximum heap size for the process.
setMinHeapSize
Link copied to clipboard
open fun setMinHeapSize(@Nullable heapSize: @Nullable String)
Sets the minimum heap size for the process.
setMustRunAfter
Link copied to clipboard
open fun setMustRunAfter(mustRunAfterTasks: Iterable<out Any>)
abstract fun setMustRunAfter(mustRunAfter: Iterable<out Any>)
open fun setMustRunAfter(mustRunAfterTasks: Iterable<out Any>)
Specifies the set of tasks that this task must run after.
setOnlyIf
Link copied to clipboard
open fun setOnlyIf(onlyIfClosure: Closure)
abstract fun setOnlyIf(onlyIfClosure: Closure<out Any>)
Execute the task only if the given closure returns true.
open fun setOnlyIf(spec: Spec<in Task>)
open fun setOnlyIf(onlyIfReason: String, spec: Spec<in Task>)
abstract fun setOnlyIf(onlyIfSpec: Spec<in Task>)
@Incubating
abstract fun setOnlyIf(onlyIfReason: String, onlyIfSpec: Spec<in Task>)
open fun setOnlyIf(spec: Spec<in Task>)
Execute the task only if the given spec is satisfied.
setProperty
Link copied to clipboard
open fun setProperty(name: String, value: Any)
open fun setProperty(name: String, value: Any)
Sets a property of this task.
setShouldRunAfter
Link copied to clipboard
open fun setShouldRunAfter(shouldRunAfterTasks: Iterable<out Any>)
abstract fun setShouldRunAfter(shouldRunAfter: Iterable<out Any>)
open fun setShouldRunAfter(shouldRunAfterTasks: Iterable<out Any>)
Specifies the set of tasks that this task should run after.
setStandardInput
Link copied to clipboard
open fun setStandardInput(inputStream: InputStream): JavaExec
Sets the standard input stream for the process executing the command.
setStandardOutput
Link copied to clipboard
open fun setStandardOutput(outputStream: OutputStream): JavaExec
Sets the output stream to consume standard output from the process executing the command.
setSystemProperties
Link copied to clipboard
open fun setSystemProperties(properties: Map<String, out @Nullable Any>)
Sets the system properties to use for the process.
setWorkingDir
Link copied to clipboard
open fun setWorkingDir(dir: File)
open fun setWorkingDir(dir: Any)
Sets the working directory for the process.
shouldRunAfter
Link copied to clipboard
open fun shouldRunAfter(paths: Array<Any>): TaskDependency
open fun shouldRunAfter(paths: Array<Any>): TaskDependency
Specifies that this task should run after all of the supplied tasks.
systemProperties
Link copied to clipboard
open fun systemProperties(properties: Map<String, out @Nullable Any>): JavaExec
Adds some system properties to use for the process.
systemProperty
Link copied to clipboard
open fun systemProperty(name: String, @Nullable value: @Nullable Any): JavaExec
Adds a system property to use for the process.
usesService
Link copied to clipboard
open fun usesService(service: Provider<out BuildService<out Any>>)
open fun usesService(service: Provider<out BuildService<out Any>>)
Registers a BuildService that is used by this task so its constraint on parallel execution can be honored.
workingDir
Link copied to clipboard
open fun workingDir(dir: Any): JavaExec
Sets the working directory for the process.