Java: Runtime.getRuntime (). Exe c () системный вызов ошибка / сбой - PullRequest
0 голосов
/ 06 апреля 2020

У меня есть сценарий оболочки, который возвращает использование диска с указанным путем к каталогу и Unix пользователя. Я хотел бы выполнить эту команду с помощью системного вызова java, и ниже приведен мой код. Когда я запускаю команду в терминале, она отлично работает, но Runtime.getRuntime (). Exe c (cmd) выдает следующую ошибку. Любая идея, что вызвало эту ошибку?

Терминал (работает):> usr / bin / status storage --format json "\" path = '/ a / b / c / d' && User = 'testuser'

Ошибка: строка: параметр "путь =" / a / b / c / d 'не определен, выход: 234

String s;
Process p;
try {
    String cmd = "/usr/bin/status storage --format json \"path='/a/b/c/d' && User='testuser'\"";
    System.out.println(cmd); //running printed output in terminal works, not in exec() call
    p = Runtime.getRuntime().exec(cmd);
    BufferedReader br = new BufferedReader(
        new InputStreamReader(p.getInputStream()));
    while ((s = br.readLine()) != null)
        System.out.println("line: " + s);
    p.waitFor();
    System.out.println ("exit: " + p.exitValue());
    p.destroy();
} catch (Exception e) {}
...