У меня есть задача gradle, которая должна создать профиль Websphere в ОС Windows.
task createProfile(type:Exec) {
def commandToExecute = new StringBuffer()
def profile = 'AppSrv02'
def wasHome = 'C:/IBM new/WebSphere/AppServer'
def str = new LinkedList <String> ();
str.add('cmd')
str.add('/c')
str.add(wasHome + '/bin/manageprofiles.bat')
str.add('-create')
str.add('-profileName')
str.add(profile)
//str.add('-templatePath')
//str.add(wasHome + '/profileTemplates/default')
println (str)
commandLine str.toArray()
}
И проблема возникает, если я раскомментирую закомментированные строки, после того как задача завершится ошибкой и скажет мне, что: «C:/IBM» не является допустимым пакетным файлом. Если я помещаю profileTemplates не в папку, содержащую пробелы, все снова работает нормально. Но шаблоны должны лежать в wasHome( А иногда в wasHome есть пробелы(
Теперь у меня есть идеи, почему добавление ключа шаблонов со значением с пробелами влияет таким образом, что Gradle пытается запустить «C:/IBM» вместо указанного «C:/IBM new/WebSphere/AppServer/bin/manageprofiles.bat». Похоже, что, возможно, проблема внутри java.lang.ProcessBuilder.
Я пытаюсь заключать пути в кавычки, добавляя "/""
, но ничего не работает(((( что неудивительно, потому что ProcessBuilder сам подразумевает цитирование, если это необходимо.
Итак, я спрашиваю, была ли у кого-нибудь аналогичная проблема и мог бы порекомендовать, как обойти эту проблему? Заранее спасибо.