Возможный дубликат:
перенаправление с помощью Runtime.getRuntime ().exec() не работает
Я пытаюсь запустить сценарий SQL с Java в OS X, чтобы инициировать мою базу данных для тестирования. Я знаю, что это не лучший способ сделать это, но это временное решение.
Я пытался прочитать о функции exec()
и о том, как передавать параметры, но я просто не могу заставить ее работать.
Мой код выглядит так:
try {
Process p = Runtime.getRuntime().exec("/usr/local/mysql/bin/mysql -uroot dev_test <div/test_db.sql");
p.waitFor();
BufferedReader input = new BufferedReader(new InputStreamReader(p.getInputStream()));
while ((line = input.readLine()) != null) {
System.out.println(line);
}
input.close();
} catch (Exception e) {
e.printStackTrace();
}
}
Я также пытался передать аргументы в массив строк, но безуспешно.
Мне удалось запустить его на машине с Windows, используя этот формат, но я не могу изменить его так, чтобы он работал в osx:
Process p = Runtime.getRuntime().exec(new String[] { "cmd", "/C", "mysql -u root dev_test < div\\test_db.sql" });
cmd.exe
— это оболочка). - person Joachim Sauer   schedule 19.10.2012