mirror of
https://github.com/HMCL-dev/HMCL.git
synced 2025-09-10 04:16:02 -04:00
使用 ./gradlew run 启动 HMCL 时解析 HMCL_JAVA_OPTS 环境变量 (#3323)
This commit is contained in:
parent
e9c3795ffc
commit
1c05cd981f
@ -203,6 +203,56 @@ tasks.build {
|
|||||||
dependsOn(makeExecutables)
|
dependsOn(makeExecutables)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun parseToolOptions(options: String?): List<String> {
|
||||||
|
if (options == null)
|
||||||
|
return listOf()
|
||||||
|
|
||||||
|
val builder = StringBuilder()
|
||||||
|
val result = mutableListOf<String>()
|
||||||
|
|
||||||
|
var offset = 0
|
||||||
|
|
||||||
|
loop@ while (offset < options.length) {
|
||||||
|
val ch = options[offset]
|
||||||
|
if (Character.isWhitespace(ch)) {
|
||||||
|
if (builder.isNotEmpty()) {
|
||||||
|
result += builder.toString()
|
||||||
|
builder.clear()
|
||||||
|
}
|
||||||
|
|
||||||
|
while (offset < options.length && Character.isWhitespace(options[offset])) {
|
||||||
|
offset++
|
||||||
|
}
|
||||||
|
|
||||||
|
continue@loop
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ch == '\'' || ch == '"') {
|
||||||
|
offset++
|
||||||
|
|
||||||
|
while (offset < options.length) {
|
||||||
|
val ch2 = options[offset++]
|
||||||
|
if (ch2 != ch) {
|
||||||
|
builder.append(ch2)
|
||||||
|
} else {
|
||||||
|
continue@loop
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
throw GradleException("Unmatched quote in $options")
|
||||||
|
}
|
||||||
|
|
||||||
|
builder.append(ch)
|
||||||
|
offset++
|
||||||
|
}
|
||||||
|
|
||||||
|
if (builder.isNotEmpty()) {
|
||||||
|
result += builder.toString()
|
||||||
|
}
|
||||||
|
|
||||||
|
return result
|
||||||
|
}
|
||||||
|
|
||||||
tasks.create<JavaExec>("run") {
|
tasks.create<JavaExec>("run") {
|
||||||
dependsOn(tasks.jar)
|
dependsOn(tasks.jar)
|
||||||
|
|
||||||
@ -210,4 +260,11 @@ tasks.create<JavaExec>("run") {
|
|||||||
|
|
||||||
classpath = files(jarPath)
|
classpath = files(jarPath)
|
||||||
workingDir = rootProject.rootDir
|
workingDir = rootProject.rootDir
|
||||||
|
|
||||||
|
val vmOptions = parseToolOptions(System.getenv("HMCL_JAVA_OPTS"))
|
||||||
|
jvmArgs(vmOptions)
|
||||||
|
|
||||||
|
doFirst {
|
||||||
|
logger.quiet("HMCL_JAVA_OPTS: $vmOptions")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user