From d9ac29becf2568c5890041e523ab0100e05dd159 Mon Sep 17 00:00:00 2001 From: "macroscopeapp[bot]" <170038800+macroscopeapp[bot]@users.noreply.github.com> Date: Mon, 6 Jul 2026 05:24:44 +0000 Subject: [PATCH] Fix Windows batch script: use separate quoted tokens for multiple javaagent args --- .../javaagent/JavaagentAwareStartScriptGenerator.kt | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/plugin/src/main/kotlin/com/ryandens/javaagent/JavaagentAwareStartScriptGenerator.kt b/plugin/src/main/kotlin/com/ryandens/javaagent/JavaagentAwareStartScriptGenerator.kt index 71d9e1b..74961d4 100644 --- a/plugin/src/main/kotlin/com/ryandens/javaagent/JavaagentAwareStartScriptGenerator.kt +++ b/plugin/src/main/kotlin/com/ryandens/javaagent/JavaagentAwareStartScriptGenerator.kt @@ -23,7 +23,7 @@ class JavaagentAwareStartScriptGenerator( details: JavaAppStartScriptGenerationDetails, destination: Writer, ) { - inner.generateScript(details, Fake(destination, javaagentConfiguration, platform.pathSeparator, platform.appHomeVar)) + inner.generateScript(details, Fake(destination, javaagentConfiguration, platform.pathSeparator, platform.appHomeVar, platform)) } private class FakeTransformer( @@ -48,6 +48,7 @@ class JavaagentAwareStartScriptGenerator( private val javaagentFiles: Provider>, private val pathSeparator: String, private val appHomeVar: String, + private val platform: Platform, ) : Writer() { override fun close() { inner.close() @@ -76,10 +77,14 @@ class JavaagentAwareStartScriptGenerator( "", ).replace("-javaagent:COM_RYANDENS_JAVAAGENTS_PLACEHOLDER.jar", "") } else { + // On Windows, each -javaagent option must be a separately quoted token, + // so we use `" "` (close quote, space, open quote) as separator. + // On Unix, all options can be space-separated within a single quoted string. + val separator = if (platform == Platform.WINDOWS) "\" \"" else " " str.replace( "-javaagent:COM_RYANDENS_JAVAAGENTS_PLACEHOLDER.jar", javaagentFiles.get().joinToString( - " ", + separator, ) { jar -> "-javaagent:${appHomeVar}${pathSeparator}agent-libs${pathSeparator}${jar.name}" }, ) }