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` 开关,以临时方式在调试模式下启动进程(参见 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 的所有参数的完整集合。这包括定义系统属性、最小/最大堆大小和引导类路径的参数。 |
参数 | 传递给要执行的主类的参数。 |
参数提供者 | 应用程序的参数提供者。 |
bootstrapClasspath | 用于进程的引导类路径。当此类路径为空时,使用 JVM 的默认引导类路径。 |
类路径 | 执行主类的类路径。 |
命令行 | 完整的命令行,包括可执行文件及其参数。 |
调试 | 确定是否为测试进程启用调试。当启用时 — |
debugOptions | 进程的 Java 调试线协议属性。如果启用,则 |
enableAssertions | 如果为进程启用了断言,则返回 true。 |
environment | 用于进程的环境变量。默认为当前进程的环境。 |
错误输出 | 用于从执行命令的进程中读取标准错误输出的输出流。默认为 |
可执行文件 | 要使用的可执行文件的名称。 |
执行结果 | 此任务运行的命令的结果。如果此任务尚未执行,则提供程序没有值。 |
忽略退出值 | 指示是否忽略非零退出值,或者是否抛出异常。默认为 |
javaLauncher | 配置用于运行测试的 Java 可执行文件。 |
jvmArgs | 用于启动进程 JVM 的额外参数。不包括系统属性和最小/最大堆大小。 |
jvmArgumentProviders | 用于 fork Java 进程的命令行参数提供者。 |
jvmArguments | 用于启动进程 JVM 的额外 JVM 参数。必须用于为 JVM 参数设置约定。 |
mainClass | 要执行的主类的完全限定名。 |
mainModule | 如果应用程序应作为 Java 模块运行,则为要执行的主模块的名称。 |
maxHeapSize | 进程的最大堆大小(如果有)。 |
modularity | 执行主类的模块路径处理。 |
标准输入 | 用于执行命令的进程的标准输入流。进程完成后流将关闭。默认为空流。 |
标准输出 | 用于从执行命令的进程中读取标准输出的输出流。默认为 |
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 调试属性。
- 默认值
假
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)
进行评估。