2012-08-16 89 views
0

我试图用java的ProcessBuilder执行以下命令的Java的ProcessBuilder - 如何执行xargs命令

ls | xargs cat > pathtonewFile

目前我的代码是

String command="ls | xargs cat >t" 

ProcessBuilder probuilder = new ProcessBuilder(command); 
probuilder.start() 

目前这个执行没有错误,但一个新的文件不会被创建。

我根据这里另一职务如下尝试:Problem Using Java ProcessBuilder to Execute a Piped Command

ProcessBuilder probuilder = new ProcessBuilder("sh", "-c", "ls | xargs cat >  pathtonewfile"); 

该命令执行,但创建一个0字节的文件。

+0

这让我觉得这个问题很可能出现在您正在执行的命令中。尝试从shell提示符运行相同的命令。一种可能性是该命令正在使用错误的当前目录运行。 – 2012-08-16 02:44:16

回答

0

尝试将文件扩展名添加到路径,或将文件扩展名添加到文件的名称。

+0

Stephen C - 如果我从命令行执行它的预期效果 – user1127081 2012-08-16 13:18:20

+0

我想出了命令ProcessBuilder probuilder = new ProcessBuilder(“sh”,“-c”,“ls | xargs cat> pathtonewfile”)的问题;运行问题是执行ls的文件夹包含导致错误的文件夹。修正是为ls(ls * .txt“)添加一个过滤器 – user1127081 2012-08-16 13:53:30