Java执行Linux命令

3

我试图从Java代码中执行Linux命令"cat",但它不起作用。

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

对于单个文件的 cat,它能够良好地发挥作用。

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

我的问题是如何从Java中连接到某个目录并读取所有文件?

可能是从Java调用Linux Shell命令的重复问题。 - MK.
3个回答

4
你可以将该目录下的所有文件放入一个集合中,并对其进行迭代:

您可以将该目录下的所有文件放入一个集合中,然后对其进行迭代:

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

3

使用exec()命令时不能使用*(需要一个shell)。解决方法是编写脚本,然后从Java应用程序中执行该脚本。


2

Runtim.exec() 不使用shell来执行命令,因此通配符不会被扩展。请尝试在 这里 说明的解决方案。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接