java executing linux command

13,394

Solution 1

You could put all files under the dir into a collection and iterate over it:

File[] files = dir.listFiles();
for (File f : files) {
  Runtime.getRuntime().exec("cat "+dir.getAbsolutePath()+File.separator+f.getName());
}

Solution 2

You can't use * with the exec() command (you would need a shell). A solution could be to write a script and then exec() that script from your java application.

Solution 3

Runtim.exec() does not use a shell to execute the command. Therefore the wildcard is not expanded. Try the solution explained in Want to invoke a linux shell command from java

Share:
13,394
Roman Iuvshin
Author by

Roman Iuvshin

Updated on June 04, 2022

Comments

  • Roman Iuvshin
    Roman Iuvshin almost 2 years

    I`m trying to execute linux commant 'cat' from java code, but it does not working.

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

    And it working well for cat of single file

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

    My question is how to cat all files on some dir from java ?