Я хочу вызвать сценарий оболочки в среде Windows, используя код Java.Я пытаюсь выполнить приведенный ниже код для запуска моего тестового сценария (не фактического сценария):
Java-код:
public static void main (String args[]) {
Runtime r = Runtime.getRuntime();
try {
Process p = r.exec("C:\\cygwin\\bin\\bash -c '/cygdrive/d/scripts/test.sh'");
InputStream in = p.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(in));
System.out.println("OUT:");
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
in = p.getErrorStream();
br = new BufferedReader(new InputStreamReader(in));
System.out.println("ERR:");
while ((line = br.readLine()) != null) {
System.out.println(line);
}
p.waitFor();
} catch (Exception e) {
e.printStackTrace();
}
}
test.sh
#!/bin/bash
rm -rf ./test
Но я получаю эти ошибки и скрипт не может удалить каталог.
ERR: / cygdrive / d / ereader / scripts / test.sh: строка 2: $ '\ r': команда не найдена /cygdrive/d/ereader/scripts/test.sh: строка 3: rm: команда не найдена
Другое дело, когда язапустить скрипт из терминала cygwin, он работает нормально.Я проверил переменную пути они все в порядке.Но я пытаюсь выполнить тот же скрипт через код Java, он выдает ошибку ..
Теперь, как указать программе Java, куда обращаться за командами rm?