2014-10-06 71 views
2

我試圖在java中爲linux/unix os執行awk命令,但事情是當我執行命令時,它沒有顯示任何錯誤it.But執行後沒有輸出,它需要分數第二個執行我不知道這個問題,請幫助。在java中執行awk命令

代碼

process p =new process(): 
yes = "awk '{print $1}' /root/Desktop/net/net.zone >> /root/Desktop/net/net.txt"; 
p = Runtime.getRuntime().exec(yes); 

謝謝您的幫助

回答

4

正常啓動命令行處理與Java是不容易的。我建議你使用commons-exec而不是自己嘗試。

現在,你必須在命令行兩兩件事需要特殊處理:

  • 周圍的AWK腳本單引號。當您通過addArgument將每個參數作爲單個字符串傳遞給CommandLine時,不再需要引號。
  • 輸出重定向。

    由於您創建了一個子進程,因此您可以控制stdin和stout。這意味着您需要打開目標文件以便在Java中追加,將其包裝在PumpStreamHandler中並將其傳遞給DefaultExecutor。看到這個問題的詳細信息:Process output from apache-commons exec

+0

先生,我是新來的Java不能明白你說的u能請詳細 – 2014-10-06 07:56:52

+0

請看看我聯繫,並通過實例的工作文件的內容。如果您不知道如何將庫添加到項目中,那麼IDE的文檔應該解釋這一點。 – 2014-10-06 10:21:00

+0

@vigneshkalai因爲您是Java新手,我建議您在Java論壇中詢問如何執行您正在嘗試執行的任何操作。調用awk並不是正確的方法。 – 2014-10-06 16:17:02