JavaExec
API 文档 | JavaExec |
---|
在子进程中执行 Java 应用程序。
类似于 Exec
,但使用给定的类路径和应用程序类启动 JVM。
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' }
通过在调用构建时提供 `--debug-jvm` 开关,可以以 ad-hoc 方式在调试模式下启动进程(参见 JavaExec.getDebug()
)。
gradle someJavaExecTask --debug-jvm
此外,调试配置可以在 JavaExec.debugOptions(org.gradle.api.Action)
中显式设置。
task runApp(type: JavaExec) {
...
debugOptions {
enabled = true
port = 5566
server = true
suspend = false
}
}
属性
属性 | 描述 |
allJvmArgs | 用于启动进程的 JVM 的完整参数集。这包括用于定义系统属性、最小/最大堆大小和引导类路径的参数。 |
args | 传递给要执行的主类的参数。 |
argumentProviders | 应用程序的参数提供者。 |
bootstrapClasspath | 用于进程的引导类路径。当此路径为空时,将使用 JVM 的默认引导类路径。 |
classpath | 用于执行主类的类路径。 |
commandLine | 完整的命令行,包括可执行文件及其参数。 |
debug | 确定是否为测试进程启用调试。 启用时 — |
debugOptions | 进程的 Java 调试线协议属性。 如果启用,则 |
enableAssertions | 如果为进程启用了断言,则返回 true。 |
environment | 用于进程的环境变量。 默认为此进程的环境。 |
errorOutput | 用于从执行命令的进程中消耗标准错误的输出流。 默认为 |
executable | 要使用的可执行文件的名称。 |
executionResult | 此任务运行的命令的结果。 如果此任务尚未执行,则提供程序没有值。 |
ignoreExitValue | 说明是否忽略非零退出值,或者是否抛出异常。 默认为 |
javaLauncher | 配置用于运行测试的 java 可执行文件。 |
jvmArgs | 用于启动进程的 JVM 的额外参数。 不包括系统属性和最小/最大堆大小。 |
jvmArgumentProviders | 要 fork 的 java 进程的命令行参数提供程序。 |
jvmArguments | 用于启动进程的 JVM 的额外 JVM 参数。 必须用于为 JVM 参数设置约定。 |
mainClass | 要执行的主类的完全限定名称。 |
mainModule | 如果应用程序应作为 Java 模块运行,则要执行的主模块的名称。 |
maxHeapSize | 进程的最大堆大小(如果有)。 |
modularity | 用于执行主类的模块路径处理。 |
standardInput | 用于执行命令的进程的标准输入流。 进程完成后,流将关闭。 默认为空流。 |
standardOutput | 用于从执行命令的进程中消耗标准输出的输出流。 默认为 |
systemProperties | 将用于进程的系统属性。 |
workingDir | 进程的工作目录。 默认为项目目录。 |
方法
方法 | 描述 |
args(args) | 为要执行的主类添加参数。 |
args(args) | 为要执行的主类添加参数。 |
bootstrapClasspath(classpath) | 将给定值添加到进程的引导类路径的末尾。 |
classpath(paths) | 将元素添加到用于执行主类的类路径。 |
copyTo(options) | 将这些选项复制到给定选项。 |
copyTo(target) | 将这些选项复制到给定的目标选项。 |
debugOptions(action) | 配置进程的 Java 调试线协议属性。 如果启用 |
environment(name, value) | 为此进程的环境添加一个环境变量。 |
environment(environmentVariables) | 为此进程的环境添加一些环境变量。 |
executable(executable) | 设置要使用的可执行文件的名称。 |
jvmArgs(arguments) | 添加一些用于启动进程的 JVM 的参数。 |
jvmArgs(arguments) | 添加一些用于启动进程的 JVM 的参数。 |
systemProperties(properties) | 为进程添加一些系统属性。 |
workingDir(dir) | 设置进程的工作目录。 提供的参数按照 |
脚本块
没有脚本块
属性详情
确定是否为测试进程启用调试。 启用时 — debug = true
— 进程以挂起状态启动,监听端口 5005。 调试时应禁用并行测试执行,如果 Test.getForkEvery()
使用非零值,则需要偶尔重新附加调试器。
从 Gradle 5.6 开始,您可以通过 JavaForkOptions.debugOptions(org.gradle.api.Action)
配置端口和其他 Java 调试属性。
- 默认值
false
JavaDebugOptions
debugOptions
(只读)
进程的 Java 调试线协议属性。 如果启用,则 -agentlib:jdwp=...
将附加到 JVM 参数,并使用来自参数的配置。
Provider
<ExecResult
>
executionResult
Provider
<ExecResult
>此任务运行的命令的结果。 如果此任务尚未执行,则提供程序没有值。
ModularitySpec
modularity
(只读)
用于执行主类的模块路径处理。
方法详情
JavaExecSpec
args
(Iterable
<?>
args)
Iterable
<?>为要执行的主类添加参数。
JavaExec
copyTo
(JavaForkOptions
options)
将这些选项复制到给定选项。
JavaExec
copyTo
(ProcessForkOptions
target)
将这些选项复制到给定的目标选项。
void
debugOptions
(Action
<JavaDebugOptions
>
action)
Action
<JavaDebugOptions
>配置进程的 Java 调试线协议属性。 如果启用 JavaForkOptions.setDebug(boolean)
,则 -agentlib:jdwp=...
将附加到 JVM 参数,并使用来自参数的配置。
设置进程的工作目录。 提供的参数按照 Project.file(java.lang.Object)
进行评估。