Package org.gradle.process

# Interface JavaForkOptions

All Superinterfaces:
  `ProcessForkOptions`

All Known Subinterfaces:
  `JavaExecSpec`

All Known Implementing Classes:
  `JavaExec`, `RhinoShellExec`, `Test`

public interface JavaForkOptions extends ProcessForkOptions

Specifies the options to use to fork a Java process.

## Method Summary

Modifier and Type
Method
Description
`JavaForkOptions`
`bootstrapClasspath(Object... classpath)`
Adds the given values to the end of the bootstrap classpath for the process.
`JavaForkOptions`
`copyTo(JavaForkOptions options)`
Copies these options to the given options.
`List<String>`
`getAllJvmArgs()`
Returns the full set of arguments to use to launch the JVM for the process.
`FileCollection`
`getBootstrapClasspath()`
Returns the bootstrap classpath to use for the process.
`boolean`
`getDebug()`
Returns true if debugging is enabled for the process.
`String`
`getDefaultCharacterEncoding()`
Returns the default character encoding to use.
`boolean`
`getEnableAssertions()`
Returns true if assertions are enabled for the process.
`List<String>`
`getJvmArgs()`
Returns the extra arguments to use to launch the JVM for the process.
`String`
`getMaxHeapSize()`
Returns the maximum heap size for the process, if any.
`String`
`getMinHeapSize()`
Returns the minimum heap size for the process, if any.
`Map<String,Object>`
`getSystemProperties()`
Returns the system properties which will be used for the process.
`JavaForkOptions`
`jvmArgs(Iterable<?> arguments)`
Adds some arguments to use to launch the JVM for the process.
`JavaForkOptions`
`jvmArgs(Object... arguments)`
Adds some arguments to use to launch the JVM for the process.
`void`
`setAllJvmArgs(Iterable<?> arguments)`
Sets the full set of arguments to use to launch the JVM for the process.
`void`
`setAllJvmArgs(List<String> arguments)`
Sets the full set of arguments to use to launch the JVM for the process.
`void`
`setBootstrapClasspath(FileCollection classpath)`
Sets the bootstrap classpath to use for the process.
`void`
`setDebug(boolean enabled)`
Enable or disable debugging for the process.
`void`
`setDefaultCharacterEncoding(String defaultCharacterEncoding)`
Sets the default character encoding to use.
`void`
`setEnableAssertions(boolean enabled)`
Enable or disable assertions for the process.
`void`
`setJvmArgs(Iterable<?> arguments)`
Sets the extra arguments to use to launch the JVM for the process.
`void`
`setJvmArgs(List<String> arguments)`
Sets the extra arguments to use to launch the JVM for the process.
`void`
`setMaxHeapSize(String heapSize)`
Sets the maximum heap size for the process.
`void`
`setMinHeapSize(String heapSize)`
Sets the minimum heap size for the process.
`void`
`setSystemProperties(Map<String,?> properties)`
Sets the system properties to use for the process.
`JavaForkOptions`
`systemProperties(Map<String,?> properties)`
Adds some system properties to use for the process.
`JavaForkOptions`
`systemProperty(String name, Object value)`
Adds a system property to use for the process.

### Methods inherited from interface org.gradle.process.ProcessForkOptions

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

## Method Details

### getSystemProperties

@Input Map<String,Object> getSystemProperties()
Returns the system properties which will be used for the process.

Returns:
  The system properties. Returns an empty map when there are no system properties.

### setSystemProperties

void setSystemProperties(Map<String,?> properties)
Sets the system properties to use for the process.

Parameters:
  `properties` - The system properties. Must not be null.

### systemProperties

JavaForkOptions systemProperties(Map<String,?> properties)
Adds some system properties to use for the process.

Parameters:
  `properties` - The system properties. Must not be null.
Returns:
  this

### systemProperty

JavaForkOptions systemProperty(String name, Object value)
Adds a system property to use for the process.

Parameters:
  `name` - The name of the property
  `value` - The value for the property. May be null.
Returns:
  this

### getDefaultCharacterEncoding

@Optional @Input String getDefaultCharacterEncoding()
Returns the default character encoding to use.

Returns:
  The default character encoding. Returns null if the `default character encoding of this JVM` should be used.

### setDefaultCharacterEncoding

void setDefaultCharacterEncoding(String defaultCharacterEncoding)
Sets the default character encoding to use. Note: Many JVM implementations support the setting of this attribute via system property on startup (namely, the `file.encoding` property). For JVMs where this is the case, setting the `file.encoding` property via `setSystemProperties(java.util.Map)` or similar will have no effect as this value will be overridden by the value specified by `getDefaultCharacterEncoding()`.

Parameters:
  `defaultCharacterEncoding` - The default character encoding. Use null to use `this JVM's default charset`

### getMinHeapSize

@Optional @Input String getMinHeapSize()
Returns the minimum heap size for the process, if any.

Returns:
  The minimum heap size. Returns null if the default minimum heap size should be used.

### setMinHeapSize

void setMinHeapSize(String heapSize)
Sets the minimum heap size for the process.

Parameters:
  `heapSize` - The minimum heap size. Use null for the default minimum heap size.

### getMaxHeapSize

@Optional @Input String getMaxHeapSize()
Returns the maximum heap size for the process, if any.

Returns:
  The maximum heap size. Returns null if the default maximum heap size should be used.

### setMaxHeapSize

void setMaxHeapSize(String heapSize)
Sets the maximum heap size for the process.

Parameters:
  `heapSize` - The heap size. Use null for the default maximum heap size.

### getJvmArgs

@Optional @Input List<String> getJvmArgs()
Returns the extra arguments to use to launch the JVM for the process. Does not include system properties and the minimum/maximum heap size.

Returns:
  The arguments. Returns an empty list if there are no arguments.

### setJvmArgs

void setJvmArgs(List<String> arguments)
Sets the extra arguments to use to launch the JVM for the process. System properties and minimum/maximum heap size are updated.

Parameters:
  `arguments` - The arguments. Must not be null.
Since:
  4.0

### setJvmArgs

void setJvmArgs(Iterable<?> arguments)
Sets the extra arguments to use to launch the JVM for the process. System properties and minimum/maximum heap size are updated.

Parameters:
  `arguments` - The arguments. Must not be null.

### jvmArgs

JavaForkOptions jvmArgs(Iterable<?> arguments)
Adds some arguments to use to launch the JVM for the process.

Parameters:
  `arguments` - The arguments. Must not be null.
Returns:
  this

### jvmArgs

JavaForkOptions jvmArgs(Object... arguments)
Adds some arguments to use to launch the JVM for the process.

Parameters:
  `arguments` - The arguments.
Returns:
  this

### getBootstrapClasspath

@Classpath FileCollection getBootstrapClasspath()
Returns the bootstrap classpath to use for the process. The default bootstrap classpath for the JVM is used when this classpath is empty.

Returns:
  The bootstrap classpath. Never returns null.

### setBootstrapClasspath

void setBootstrapClasspath(FileCollection classpath)
Sets the bootstrap classpath to use for the process. Set to an empty classpath to use the default bootstrap classpath for the specified JVM.

Parameters:
  `classpath` - The classpath. Must not be null. Can be empty.

### bootstrapClasspath

JavaForkOptions bootstrapClasspath(Object... classpath)
Adds the given values to the end of the bootstrap classpath for the process.

Parameters:
  `classpath` - The classpath.
Returns:
  this

### getEnableAssertions

@Input boolean getEnableAssertions()
Returns true if assertions are enabled for the process.

Returns:
  true if assertions are enabled, false if disabled

### setEnableAssertions

void setEnableAssertions(boolean enabled)
Enable or disable assertions for the process.

Parameters:
  `enabled` - true to enable assertions, false to disable.

### getDebug

@Input boolean getDebug()
Returns true if debugging is enabled for the process. When enabled, the process is started suspended and listening on port 5005.

Returns:
  true when debugging is enabled, false to disable.

### setDebug

void setDebug(boolean enabled)
Enable or disable debugging for the process. When enabled, the process is started suspended and listening on port 5005.

Parameters:
  `enabled` - true to enable debugging, false to disable.

### getAllJvmArgs

@Internal List<String> getAllJvmArgs()
Returns the full set of arguments to use to launch the JVM for the process. This includes arguments to define system properties, the minimum/maximum heap size, and the bootstrap classpath.

Returns:
  The arguments. Returns an empty list if there are no arguments.

### setAllJvmArgs

void setAllJvmArgs(List<String> arguments)
Sets the full set of arguments to use to launch the JVM for the process. Overwrites any previously set system properties, minimum/maximum heap size, assertions, and bootstrap classpath.

Parameters:
  `arguments` - The arguments. Must not be null.
Since:
  4.0

### setAllJvmArgs

void setAllJvmArgs(Iterable<?> arguments)
Sets the full set of arguments to use to launch the JVM for the process. Overwrites any previously set system properties, minimum/maximum heap size, assertions, and bootstrap classpath.

Parameters:
  `arguments` - The arguments. Must not be null.

### copyTo

JavaForkOptions copyTo(JavaForkOptions options)
Copies these options to the given options.

Parameters:
  `options` - The target options.
Returns:
  this