J'ai fait un test:
def value = "abc"
List<String> args = [ 'cmd', "-Dopt=${value}"];
System.out.println (args.getClass());
System.out.println (args.get(0).getClass());
System.out.println (args.get(1).getClass());
La sortie était:
class java.util.ArrayList
class java.lang.String
class org.codehaus.groovy.runtime.GStringImpl
Modification du code un peu à:
def value = "abc"
List<String> args = [ 'cmd', "-Dopt=${value}".toString()];
System.out.println (args.getClass());
System.out.println (args.get(0).getClass());
System.out.println (args.get(1).getClass());
produit ceci:
class java.util.ArrayList
class java.lang.String
class java.lang.String
Devrait faire l'affaire, mais je ne suis pas sûr à 100% que c'est la meilleure façon de le faire.
I ajout d'un commentaire sur l'évitement de ProcessBuilder à ma réponse (je poste ce cas, vous l'avez manqué) ... Cela pourrait vous faire économiser du travail :-) –