为了使重定向按书面要求工作,您需要执行以下操作:
Process p = Runtime.getRuntime().exec( new String[]{"/bin/bash", "-c", "ls > OutputFileNames.txt"});您遇到的问题是
Runtime.exec(String)将命令行拆分为参数的简单方法。
如果要在shell提示符下按原样运行该命令,则必须输入以下命令:
$ /bin/bash -c "ls > OutputFileNames.txt"
因为“ bash”的“ -c”选项需要将生成的shell的命令行作为单个shell参数。但是,如果要将裸引号放在Java
String中,则该
Runtime.exec(String)方法仍然会导致分割错误。唯一的解决方案是将命令参数作为数组提供。



