Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/376.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java执行linux命令_Java_Linux_Bash_Cat - Fatal编程技术网

java执行linux命令

java执行linux命令,java,linux,bash,cat,Java,Linux,Bash,Cat,我试图从java代码中执行linux commant'cat',但它不起作用 Runtime.getRuntime().exec("cat /home/roman/logs/*"); 并且它在单文件cat中运行良好 Runtime.getRuntime().exec("cat /home/roman/logs/mylog.log"); 我的问题是如何从java中对某个目录上的所有文件进行cat?您不能将*与exec()命令一起使用(您需要一个shell)。解决方案可以是编写一个脚本,然后

我试图从java代码中执行linux commant'cat',但它不起作用

Runtime.getRuntime().exec("cat /home/roman/logs/*");  
并且它在单文件cat中运行良好

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

我的问题是如何从java中对某个目录上的所有文件进行cat?

您不能将
*
exec()
命令一起使用(您需要一个shell)。解决方案可以是编写一个脚本,然后从java应用程序中
exec()
该脚本。

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

File[] files = dir.listFiles();
for (File f : files) {
  Runtime.getRuntime().exec("cat "+dir.getAbsolutePath()+File.separator+f.getName());
}
Runtim.exec()不使用shell来执行命令。因此,通配符不会展开。尝试

中解释的解决方案