Java выполняет команду Linux - PullRequest
3 голосов
/ 03 апреля 2012

Я пытаюсь выполнить linux commant 'cat' из кода Java, но он не работает.

Runtime.getRuntime().exec("cat /home/roman/logs/*");  

И это хорошо работает для кошки одного файла

Runtime.getRuntime().exec("cat /home/roman/logs/mylog.log");

У меня вопрос, как откатить все файлы в каком-либо каталоге из Java?

Ответы [ 3 ]

4 голосов
/ 03 апреля 2012

Вы можете поместить все файлы из каталога в коллекцию и выполнить итерацию по нему:

File[] files = dir.listFiles();
for (File f : files) {
  Runtime.getRuntime().exec("cat "+dir.getAbsolutePath()+File.separator+f.getName());
}
3 голосов
/ 03 апреля 2012

Вы не можете использовать * с командой exec() (вам потребуется оболочка). Решением может быть написание сценария, а затем exec() этого сценария из вашего Java-приложения.

2 голосов
/ 03 апреля 2012

Runtim.exec () не использует оболочку для выполнения команды.Поэтому подстановочный знак не расширяется.Попробуйте решение, описанное в Хотите вызвать команду оболочки Linux из Java

...