Я пытаюсь использовать runtime.getruntime.exec в приложении Java.
В течение некоторого времени я пытался запустить другую команду, и я продолжаю получать код ошибки 2, который, как я обнаружил, означает, что файл или каталог не существует. Для проверки я попытался передать базовую команду и получил код ошибки 1. Почему я получаю это и что означает код ошибки 1?
Вот мой код:
private String executeCommand(String command) {
logger.info("executing command : " + command);
String result = null;
try {
Runtime rt = Runtime.getRuntime();
Process pr = rt.exec(command);
BufferedReader input = new BufferedReader(new InputStreamReader(pr.getInputStream()));
BufferedReader stdError = new BufferedReader(new InputStreamReader(pr.getErrorStream()));
String line = null;
while ((line = input.readLine()) != null) {
result = result + line;
}
while ((line = stdError.readLine()) != null) {
result = result + line;
}
int exitVal = pr.waitFor();
System.out.println("Exited with error code " + exitVal);
} catch (IOException e) {
e.printStackTrace();
} catch (NumberFormatException e) {
e.printStackTrace();
} catch (Throwable e) {
e.printStackTrace();
}
logger.info("This is the result:" + result);
return result;
Вот как я это называю:
String temp = executeCommand("cd $HOME/my-directory/my-subdirectory");
Вот мой вывод:
INFO : programname - executing command : cd $HOME/my-directory/my-
subdirectory
Exited with error code 1
INFO : programname - This is the result:null/usr/bin/cd[8]: $HOME/my-
directory/my-subdirectory: not found
String temp = executeCommand("cd ${HOME}/my-directory/my-subdirectory");
- person Gal Shaboodi   schedule 30.11.2017String temp = executeCommand("/usr/bin/cd $HOME/my-directory/my-subdirectory");
- person Gal Shaboodi   schedule 30.11.2017