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'
}

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

Also, debug configuration can be explicitly set in debugOptions:

task runApp(type: JavaExec) {
   ...

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

Constructors

Link copied to clipboard
constructor()

Properties

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

Functions

Link copied to clipboard
open fun acceptServiceReferences(serviceReferences: Set<ServiceReferenceSpec>)
Link copied to clipboard
open fun appendParallelSafeAction(action: Action<in Task>)
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.
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.
Link copied to clipboard
open fun classpath(@Nullable paths: Array<@Nullable Any>): JavaExec
Adds elements to the classpath for executing the main class.
Link copied to clipboard
open fun compareTo(otherTask: Task): Int
open fun compareTo(otherTask: Task): Int
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
Link copied to clipboard
open fun conventionMapping(property: String, mapping: Callable<out Any>): Task
Link copied to clipboard
open fun copyTo(options: JavaForkOptions): JavaExec
Copies these options to the given options.
Copies these options to the given target options.
Link copied to clipboard
Configures Java Debug Wire Protocol properties for the process.
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.
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.
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.
Link copied to clipboard
abstract fun doNotTrackState(reasonNotToTrackState: String)
open fun doNotTrackState(reasonNotToTrackState: String)
Do not track the state of the task.
Link copied to clipboard
open fun doNotTrackStateIf(reason: String, spec: Spec<in TaskInternal>)
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.
Link copied to clipboard
open fun exec()
Link copied to clipboard
open fun executable(executable: Any): JavaExec
Sets the name of the executable to use.
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.
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.
Link copied to clipboard
Returns the full set of arguments to use to launch the JVM for the process.
Link copied to clipboard
open fun getAnt(): AntBuilder
open fun getAnt(): AntBuilder
Returns the AntBuilder for this task.
Link copied to clipboard
open fun getArgs(): List<String>
Returns the arguments passed to the main class to be executed.
Link copied to clipboard
Argument providers for the application.
Link copied to clipboard
open fun getAsDynamicObject(): DynamicObject
Link copied to clipboard
Returns the bootstrap classpath to use for the process.
Link copied to clipboard
Returns the classpath for executing the main class.
Link copied to clipboard
Returns the full command line, including the executable plus its arguments.
Link copied to clipboard
open fun getDebug(): Boolean
Determines whether debugging is enabled for the test process.
Link copied to clipboard
Returns the Java Debug Wire Protocol properties for the process.
Link copied to clipboard
@Nullable
open fun getDefaultCharacterEncoding(): @Nullable String
Returns the default character encoding to use.
Link copied to clipboard
open fun getDependsOn(): Set<Any>
open fun getDependsOn(): Set<Any>
Returns the dependencies of this task.
Link copied to clipboard
Returns the destroyables of this task.
Link copied to clipboard
open fun getDidWork(): Boolean
open fun getDidWork(): Boolean
Checks if the task actually did any work.
Link copied to clipboard
Returns true if assertions are enabled for the process.
Link copied to clipboard
The environment variables to use for the process.
Link copied to clipboard
Returns the output stream to consume standard error from the process executing the command.
Link copied to clipboard
@Internal(value = "covered by getJavaVersion")
@Nullable
open fun getExecutable(): @Nullable String
Returns the name of the executable to use.
Link copied to clipboard
Returns the result for the command run by this task.
Link copied to clipboard
The container of extensions.
Link copied to clipboard
Returns tasks that finalize this task.
Link copied to clipboard
open fun getIdentityPath(): Path
Link copied to clipboard
open fun getInputs(): TaskInputsInternal
abstract fun getInputs(): TaskInputs
open fun getInputs(): TaskInputsInternal
Returns the inputs of this task.
Link copied to clipboard
Configures the java executable to be used to run the tests.
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.
Link copied to clipboard
open fun getJvmArgs(): List<String>
Returns the extra arguments to use to launch the JVM for the process.
Link copied to clipboard
Command line argument providers for the java process to fork.
Link copied to clipboard
Extra JVM arguments to be to use to launch the JVM for the process.
Link copied to clipboard
open fun getLifecycleDependencies(): TaskDependencyInternal
Link copied to clipboard
Returns the local state of this task.
Link copied to clipboard
open fun getLogger(): Logger
open fun getLogger(): Logger
Returns the logger for this task.
Link copied to clipboard
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.
Link copied to clipboard
abstract fun getMainClass(): Property<String>
The fully qualified name of the Main class to be executed.
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.
Link copied to clipboard
@Nullable
open fun getMaxHeapSize(): @Nullable String
Returns the maximum heap size for the process, if any.
Link copied to clipboard
@Nullable
open fun getMinHeapSize(): @Nullable String
Returns the minimum heap size for the process, if any.
Link copied to clipboard
Returns tasks that this task must run after.
Link copied to clipboard
open fun getName(): String
open fun getName(): String
Returns the name of this task.
Link copied to clipboard
open fun getOnlyIf(): Spec<in TaskInternal>
Link copied to clipboard
open fun getOutputs(): TaskOutputsInternal
open fun getOutputs(): TaskOutputsInternal
Returns the outputs of this task.
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.
Link copied to clipboard
open fun getProject(): Project
open fun getProject(): Project
Returns the Project which this task belongs to.
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
open fun getRequiredServices(): TaskRequiredServices
Link copied to clipboard
open fun getSharedResources(): List<ResourceLock>
abstract fun getSharedResources(): List<out ResourceLock>
Link copied to clipboard
Returns tasks that this task should run after.
Link copied to clipboard
Returns the standard input stream for the process executing the command.
Link copied to clipboard
Returns the output stream to consume standard output from the process executing the command.
Link copied to clipboard
open fun getStandardOutputCapture(): StandardOutputCapture
Link copied to clipboard
abstract fun getState(): TaskState
Returns the execution state of this task.
Link copied to clipboard
open fun getSystemProperties(): Map<String, @Nullable Any>
Returns the system properties which will be used for the process.
Link copied to clipboard
open fun getTaskActions(): List<InputChangesAwareTaskAction>
Link copied to clipboard
open fun getTaskDependencies(): TaskDependencyInternal
open fun getTaskDependencies(): TaskDependencyInternal
Returns a TaskDependency which contains all the tasks that this task depends on.
Link copied to clipboard
open fun getTaskIdentity(): TaskIdentity<out Any>
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.
Link copied to clipboard
open fun getTemporaryDirFactory(): Factory<File>
Link copied to clipboard
Returns the working directory for the process.
Link copied to clipboard
open fun hasProperty(propertyName: String): Boolean
open fun hasProperty(propertyName: String): Boolean
Determines if this task has the given property.
Link copied to clipboard
Link copied to clipboard
open fun <T : Task?> injectIntoNewInstance(project: ProjectInternal, identity: TaskIdentity<T>, factory: Callable<T>): T
Link copied to clipboard
open fun isEnabled(): Boolean
Link copied to clipboard
Link copied to clipboard
Tells whether a non-zero exit value is ignored, or an exception thrown.
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.
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.
Link copied to clipboard
Specifies that this task is not compatible with the configuration cache.
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>)
abstract fun onlyIf(onlyIfReason: String, onlyIfSpec: Spec<in Task>)
Execute the task only if the given spec is satisfied.
Link copied to clipboard
open fun prependParallelSafeAction(action: Action<in Task>)
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.
Link copied to clipboard
open fun restoreOnlyIf(onlyIf: Spec<in TaskInternal>)
Link copied to clipboard
open fun restoreTaskActions(taskActions: List<InputChangesAwareTaskAction>)
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.
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.
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.
Link copied to clipboard
open fun setArgsString(args: String): JavaExec
Parses an argument list from args and passes it to setArgs.
Link copied to clipboard
Sets the bootstrap classpath to use for the process.
Link copied to clipboard
open fun setClasspath(classpath: FileCollection): JavaExec
Sets the classpath for executing the main class.
Link copied to clipboard
open fun setDebug(enabled: Boolean)
Enable or disable debugging for the process.
Link copied to clipboard
open fun setDefaultCharacterEncoding(@Nullable defaultCharacterEncoding: @Nullable String)
Sets the default character encoding to use.
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.
Link copied to clipboard
open fun setDidWork(didWork: Boolean)
open fun setDidWork(didWork: Boolean)
Sets whether the task actually did any work.
Link copied to clipboard
open fun setEnableAssertions(enabled: Boolean)
Enable or disable assertions for the process.
Link copied to clipboard
open fun setEnvironment(environmentVariables: Map<String, out Any>)
Sets the environment variable to use for the process.
Link copied to clipboard
open fun setErrorOutput(outputStream: OutputStream): JavaExec
Sets the output stream to consume standard error from the process executing the command.
Link copied to clipboard
open fun setExecutable(executable: Any)
open fun setExecutable(executable: String)
Sets the name of the executable to use.
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.
Link copied to clipboard
open fun setIgnoreExitValue(ignoreExitValue: Boolean): JavaExecSpec
Sets whether a non-zero exit value is ignored, or an exception thrown.
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.
Link copied to clipboard
open fun setMaxHeapSize(@Nullable heapSize: @Nullable String)
Sets the maximum heap size for the process.
Link copied to clipboard
open fun setMinHeapSize(@Nullable heapSize: @Nullable String)
Sets the minimum heap size for the process.
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.
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>)
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.
Link copied to clipboard
open fun setProperty(name: String, value: Any)
open fun setProperty(name: String, value: Any)
Sets a property of this task.
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.
Link copied to clipboard
open fun setStandardInput(inputStream: InputStream): JavaExec
Sets the standard input stream for the process executing the command.
Link copied to clipboard
open fun setStandardOutput(outputStream: OutputStream): JavaExec
Sets the output stream to consume standard output from the process executing the command.
Link copied to clipboard
open fun setSystemProperties(properties: Map<String, out @Nullable Any>)
Sets the system properties to use for the process.
Link copied to clipboard
open fun setWorkingDir(dir: File)
open fun setWorkingDir(dir: Any)
Sets the working directory for the process.
Link copied to clipboard
Specifies that this task should run after all of the supplied tasks.
Link copied to clipboard
open fun systemProperties(properties: Map<String, out @Nullable Any>): JavaExec
Adds some system properties to use for the process.
Link copied to clipboard
open fun systemProperty(name: String, @Nullable value: @Nullable Any): JavaExec
Adds a system property to use for the process.
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.
Link copied to clipboard
open fun workingDir(dir: Any): JavaExec
Sets the working directory for the process.