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 | 用於分叉 java 程序的命令列參數提供者。 |
jvmArguments | 用於啟動程序 JVM 的額外 JVM 參數。必須用於設定 JVM 參數的慣例。 |
mainClass | 要執行的 Main 類別的完整限定名稱。 |
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)
進行評估。