Не удалось запустить команду от Runtime.exec - PullRequest
0 голосов
/ 01 февраля 2019

Ниже команды я могу запустить хотя терминал, но когда я пытаюсь выполнить его через код Java, он дает мне код выхода 127.

sledge connect --cluster_id=<name> --namespace=<name> --password=<pass>

Java:

   try {
            String[] cmd = { "/bin/bash", "sledge connect --cluster_id=<name> --namespace=<name> --password=<pass>"};
            Process p = Runtime.getRuntime().exec(cmd);
            int po = p.waitFor();
            System.out.println(po);
        } catch (IOException | InterruptedException e) {
            e.printStackTrace();
        }

1 Ответ

0 голосов
/ 01 февраля 2019

Вам необходимо добавить «-c» в массив команд, поэтому замените:

String[] cmd = { "/bin/bash", "sledge connect --cluster_id=<name> --namespace=<name> --password=<pass>"};

на:

String[] cmd = { "/bin/bash", "-c", "sledge connect --cluster_id=<name> --namespace=<name> --password=<pass>"};

Из руководства по bash:

-c строка Если указана опция -c, команды считываются из строки.Если после строки есть аргументы, они присваиваются позиционным параметрам, начиная с $ 0.

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