2012-08-16 32 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