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 的完整参数集。这包括定义系统属性、最小/最大堆大小和引导类路径的参数。 |
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 开始,您可以通过配置端口和其他 Java 调试属性
JavaForkOptions.debugOptions(org.gradle.api.Action)
。
- 默认:
false
JavaDebugOptions
debugOptions
(只读)
进程的 Java 调试线路协议属性。如果启用,则将-agentlib:jdwp=...
使用参数中的配置附加到 JVM 参数。
Provider
<ExecResult
>
executionResult
Provider
<ExecResult
>此任务运行的命令的结果。如果该任务尚未执行,则提供者没有任何价值。
ModularitySpec
modularity
(只读)
用于执行主类的模块路径处理。
JavaExecSpec
args
(Iterable
<?>
参数)
Iterable
<?>添加要执行的主类的参数。
JavaExec
copyTo
(JavaForkOptions
选项)
将这些选项复制到给定选项。
JavaExec
copyTo
(ProcessForkOptions
目标)
将这些选项复制到给定的目标选项。
void
debugOptions
(行动)Action
<JavaDebugOptions
>
Action
<JavaDebugOptions
>配置进程的 Java 调试线路协议属性。如果JavaForkOptions.setDebug(boolean)
启用,则将-agentlib:jdwp=...
使用参数中的配置附加到 JVM 参数。
设置进程的工作目录。提供的参数根据 进行评估Project.file(java.lang.Object)
。