Невозможно запустить Shell Script в Cygwin, используя Java - PullRequest
0 голосов
/ 01 декабря 2011

Я пытаюсь запустить скрипт Shell с помощью Java-приложения.Я использую Process Builder для того же.

  {
            String cmd;
            cmd = "D:/cygwin/bin/bash -c '/bin/app.sh 121 121 1212 12121'";
            System.out.println("EXECING: " + cmd);
            p = Runtime.getRuntime().exec(cmd);

            in = p.getInputStream();
            br = new BufferedReader(new InputStreamReader(in));
            System.out.println("OUT:");
            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);
            }

            System.out.println();
        }

Этот код прекрасно работает, когда я использую простой скрипт оболочки, как.

#!/bin/bash
# Call this script with at least 3 parameters, for example
# sh scriptname 1 2 3 4
echo "first parameter is $1"
echo "Second parameter is $2"
echo "Third parameter is $3"
echo "Third parameter is $4"
exit 0

Может ли кто-нибудь Предложить мне способ, где я могу открытьCygwin, а затем параметры для сценария оболочки becoz.Мой другой сценарий оболочки не работает в том же месте с сообщением об ошибке.

app.sh: line 57: lib/renameapp.sh: No such file or directory
app.sh: line 226: clear: command not found
app.sh: line 69: grep: command not found
app.sh: line 69: cut: command not found
app.sh: line 74: grep: command not found

Может ли кто-нибудь предложить мне Как открыть терминал Cygwin с помощью Java и запустить сценарий оболочки с помощью Java ..

Заранее спасибо ...

Ответы [ 2 ]

0 голосов
/ 10 мая 2013

Переменная PATH установлена ​​не так, как вы ожидаете - возможно, среда теряется при запуске процесса из Java, или, возможно, Cygwin не выполняет свою обычную магию PATH, потому что это не Вход в оболочку, я не уверен. В любом случае, просто добавьте export PATH="$PATH:/bin:/usr/bin:/usr/local/bin" в начало вашего скрипта, и он почти наверняка снова заработает.

0 голосов
/ 02 декабря 2011

Вам следует либо соответствующим образом настроить переменную окружения %PATH, либо использовать абсолютные пути в сценарии оболочки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...