У меня есть сценарий оболочки, который возвращает использование диска с указанным путем к каталогу и 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) {}