@@ -113,7 +113,7 @@ private List<String> createLaunchArgs(JavaAgent agentJarLocator, List<String> ar
113
113
114
114
cmd .addAll (args );
115
115
116
- addLaunchJavaAgents (cmd );
116
+ addLaunchJavaAgentsAndEnvironmentVariables (cmd );
117
117
118
118
return cmd ;
119
119
}
@@ -136,17 +136,31 @@ private Path createArgsFile(List<String> cmd) {
136
136
private static void addPITJavaAgent (JavaAgent agentJarLocator ,
137
137
List <String > cmd ) {
138
138
final Optional <String > jarLocation = agentJarLocator .getJarLocation ();
139
- jarLocation .ifPresent (l -> cmd .add ("-javaagent:" + l ));
139
+ jarLocation .ifPresent (l -> cmd .add ("-javaagent:\" " + l + " \" " ));
140
140
}
141
141
142
- private static void addLaunchJavaAgents (List <String > cmd ) {
142
+ private static void addLaunchJavaAgentsAndEnvironmentVariables (List <String > cmd ) {
143
143
RuntimeMXBean rt = ManagementFactory .getRuntimeMXBean ();
144
144
List <String > agents = rt .getInputArguments ().stream ()
145
145
.filter (isJavaAgentParam ().or (isEnvironmentSetting ()))
146
+ .map (Java9Process ::escapeSpaces )
146
147
.collect (Collectors .toList ());
147
148
cmd .addAll (agents );
148
149
}
149
150
151
+ static String escapeSpaces (String line ) {
152
+ if (!line .contains (" " )) {
153
+ return line ;
154
+ }
155
+ if (line .startsWith ("-D" )) {
156
+ return line .replace ("=" , "=\" " ) + "\" " ;
157
+ }
158
+ if (line .startsWith ("-javaagent" )) {
159
+ return line .replace ("-javaagent:" , "-javaagent:\" " ) + "\" " ;
160
+ }
161
+ return line ;
162
+ }
163
+
150
164
private static Predicate <String > isEnvironmentSetting () {
151
165
return a -> a .startsWith ("-D" );
152
166
}
0 commit comments