Java执行程序

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

确定是否为测试进程启用调试。启用后 —  debug = true— 该进程以挂起状态启动,侦听端口 5005。调试时应禁用并行测试执行,如果您使用非零值,则偶尔需要重新连接调试器 Test.getForkEvery()

debugOptions

进程的 Java 调试线路协议属性。如果启用,则将-agentlib:jdwp=... 使用参数中的配置附加到 JVM 参数。

enableAssertions

如果为进程启用了断言,则返回 true。

environment

用于进程的环境变量。默认为该进程的环境。

errorOutput

用于消耗执行命令的进程中的标准错误的输出流。默认为System.err.

executable

要使用的可执行文件的名称。

executionResult

此任务运行的命令的结果。如果该任务尚未执行,则提供者没有任何价值。

ignoreExitValue

指示是否忽略非零退出值或引发异常。默认为false.

javaLauncher

配置用于运行测试的 java 可执行文件。

jvmArgs

用于为进程启动 JVM 的额外参数。不包括系统属性和最小/最大堆大小。

jvmArgumentProviders

用于 fork 的 java 进程的命令行参数提供程序。

jvmArguments

用于为进程启动 JVM 的额外 JVM 参数。必须用于设置 JVM 参数的约定。

mainClass

要执行的主类的完全限定名称。

mainModule

如果应用程序应作为 Java 模块运行,则要执行的主模块的名称。

maxHeapSize

进程的最大堆大小(如果有)。

modularity

用于执行主类的模块路径处理。

standardInput

执行命令的进程的标准输入流。进程完成后流将关闭。默认为空流。

standardOutput

用于使用执行命令的进程的标准输出的输出流。默认为System.out.

systemProperties

将用于该进程的系统属性。

workingDir

进程的工作目录。默认为项目目录。

方法

方法描述
args(args)

添加要执行的主类的参数。

args(args)

添加要执行的主类的参数。

bootstrapClasspath(classpath)

将给定值添加到进程的引导类路径的末尾。

classpath(paths)

将元素添加到类路径以执行主类。

copyTo(options)

将这些选项复制到给定选项。

copyTo(target)

将这些选项复制到给定的目标选项。

debugOptions(action)

配置进程的 Java 调试线路协议属性。如果JavaForkOptions.setDebug(boolean)启用,则将-agentlib:jdwp=...使用参数中的配置附加到 JVM 参数。

environment(name, value)

向此进程的环境添加环境变量。

environment(environmentVariables)

为此过程的环境添加一些环境变量。

executable(executable)

设置要使用的可执行文件的名称。

jvmArgs(arguments)

添加一些用于启动进程的 JVM 的参数。

jvmArgs(arguments)

添加一些用于启动进程的 JVM 的参数。

systemProperties(properties)

添加一些用于进程的系统属性。

workingDir(dir)

设置进程的工作目录。提供的参数根据 进行评估Project.file(java.lang.Object)

脚本块

无脚本块

物业详情

List<String> allJvmArgs

用于为进程启动 JVM 的完整参数集。这包括定义系统属性、最小/最大堆大小和引导类路径的参数。

List<String> args

传递给要执行的主类的参数。

默认:
[]

List<CommandLineArgumentProvider> argumentProviders(只读)

应用程序的参数提供者。

默认:
[]

FileCollection bootstrapClasspath

用于进程的引导类路径。当该类路径为空时,将使用 JVM 的默认引导类路径。

默认:
[]

FileCollection classpath

用于执行主类的类路径。

默认:
null

List<String> commandLine(只读)

完整的命令行,包括可执行文件及其参数。

boolean debug

确定是否为测试进程启用调试。启用后 —  debug = true— 该进程以挂起状态启动,侦听端口 5005。调试时应禁用并行测试执行,如果您使用非零值,则偶尔需要重新连接调试器 Test.getForkEvery()

从 Gradle 5.6 开始,您可以通过配置端口和其他 Java 调试属性 JavaForkOptions.debugOptions(org.gradle.api.Action)

默认:
false

JavaDebugOptions debugOptions(只读)

进程的 Java 调试线路协议属性。如果启用,则将-agentlib:jdwp=... 使用参数中的配置附加到 JVM 参数。

boolean enableAssertions

如果为进程启用了断言,则返回 true。

默认:
false

Map<String, Object> environment

用于进程的环境变量。默认为该进程的环境。

默认:
当前进程的环境

OutputStream errorOutput

用于消耗执行命令的进程中的标准错误的输出流。默认为System.err.

默认:
System.err

String executable

要使用的可执行文件的名称。

默认:
java当前 JVM 的可执行文件

Provider<ExecResult> executionResult

此任务运行的命令的结果。如果该任务尚未执行,则提供者没有任何价值。

boolean ignoreExitValue

指示是否忽略非零退出值或引发异常。默认为false.

默认:
false

Property<JavaLauncher> javaLauncher

配置用于运行测试的 java 可执行文件。

默认:
java.toolchain

List<String> jvmArgs

用于为进程启动 JVM 的额外参数。不包括系统属性和最小/最大堆大小。

默认:
[]

List<CommandLineArgumentProvider> jvmArgumentProviders(只读)

用于 fork 的 java 进程的命令行参数提供程序。

默认:
[]

ListProperty<String> jvmArguments

用于为进程启动 JVM 的额外 JVM 参数。必须用于设置 JVM 参数的约定。

默认:
null

Property<String> mainClass

要执行的主类的完全限定名称。

如果使用带有属性的可执行 Jar,则 不需要设置此项Main-Class

默认:
null

Property<String> mainModule

如果应用程序应作为 Java 模块运行,则要执行的主模块的名称。

默认:
null

String maxHeapSize

进程的最大堆大小(如果有)。

默认:
null

ModularitySpec modularity(只读)

用于执行主类的模块路径处理。

InputStream standardInput

执行命令的进程的标准输入流。进程完成后流将关闭。默认为空流。

默认:
一个空的InputStream

OutputStream standardOutput

用于使用执行命令的进程的标准输出的输出流。默认为System.out.

默认:
System.out

Map<String, Object> systemProperties

将用于该进程的系统属性。

默认:
[:]

File workingDir

进程的工作目录。默认为项目目录。

默认:
project.projectDir

方法详情

JavaExecSpec argsIterable<?>参数)

添加要执行的主类的参数。

JavaExec argsObject...参数)

添加要执行的主类的参数。

JavaExec bootstrapClasspathObject...类路径)

将给定值添加到进程的引导类路径的末尾。

JavaExec classpathObject...路径)

将元素添加到类路径以执行主类。

JavaExec copyToJavaForkOptions选项)

将这些选项复制到给定选项。

JavaExec copyToProcessForkOptions目标)

将这些选项复制到给定的目标选项。

void debugOptions(行动)Action<JavaDebugOptions>

配置进程的 Java 调试线路协议属性。如果JavaForkOptions.setDebug(boolean)启用,则将-agentlib:jdwp=...使用参数中的配置附加到 JVM 参数。

JavaExec environmentString名称,Object值)

向此进程的环境添加环境变量。

JavaExec environment(环境变量)Map<String, ?>

为此过程的环境添加一些环境变量。

JavaExec executableObject可执行)

设置要使用的可执行文件的名称。

JavaExec jvmArgsIterable<?>参数)

添加一些用于启动进程的 JVM 的参数。

JavaExec jvmArgsObject...参数)

添加一些用于启动进程的 JVM 的参数。

JavaExec systemProperties(特性)Map<String, ?>

添加一些用于进程的系统属性。

JavaExec workingDirObject目录)

设置进程的工作目录。提供的参数根据 进行评估Project.file(java.lang.Object)