Замените пробелы в путях на что?
Я запускаю bash из Java-приложения, и у меня в пути есть команда, которая выполняется внутри пространств bash (пример cd / Documents and Settings / test), я запускаю команду с помощью Process Builder, но она не работает, когда путь имеет пробелы. Я пытаюсь заменить пробелы на %20, но это не помогает. Что же делать ?
4 ответа:
Вы можете либо инкапсулировать полный путь в метки quotion следующим образом:
String quoted = "\"" + pathString + "\"";
Или, как вы используете bash, экранируйте пробелы:
String escaped = pathString.replace(" ", "\\ ");
Оба должны работать в качестве аргумента для вашей команды
cd
.
Использование %20 здесь-нонсенс, это не URL. Используйте String[] или List[] вместо String, и тогда вы можете оставить пробелы, как они есть, там больше нет разделения аргов строки cmd.
Так что вы можете использовать
"cd", "/Documents and Settings/test"
Однако это не имеет смысла как команда оболочки. Вы не можете изменить рабочий dir Java таким образом, как вы начинаете новый процесс. Вы можете написать сценарий оболочки (пакетный файл) и вызвать его из Java.
Вам нужно выполнить команду, которая работает из командной строки bash. например, cd / Document and Settings/ won't. Try
cd C:Documents\ and\ Settings
, который делает.Примечание: bash требует, чтобы вы использовали C: в начале для доступа к этой папке. Использование just / в начале даст вам виртуальный корень cygwin.