我试图从Java代码执行linux的命令'猫',但它不工作。
Runtime.getRuntime().exec("cat /home/roman/logs/*");
并且它适合单个文件的猫
Runtime.getRuntime().exec("cat /home/roman/logs/mylog.log");
我的问题是如何从java的一些目录上捕获所有的文件?
你可以把目录下的所有文件放到一个集合中并遍历它:
File[] files = dir.listFiles(); for (File f : files) { Runtime.getRuntime().exec("cat "+dir.getAbsolutePath()+File.separator+f.getName()); }
你不能用exec()
命令(你需要一个shell)。 一个解决方案可能是编写一个脚本,然后从你的Java应用程序的exec()
脚本。
Runtim.exec()不使用shell来执行该命令。 因此通配符不被扩展。 尝试在想要从java调用linux shell命令中解释的解决方案