2013-04-17 55 views
0
sh -c "cd /home/dipankar/NetBeansProjects/TransBench/Hindi;./mat" 

當Linux終端執行以下命令其執行完全然而,當我試圖運行相同的使用Java運行時它提供了以下錯誤:EOF而尋找匹配'「」的錯誤

ERROR>/home/dipankar/NetBeansProjects/TransBench/Hindi;./mat": -c: line 0: unexpected EOF while looking for matching `"' 
ERROR>/home/dipankar/NetBeansProjects/TransBench/Hindi;./mat": -c: line 1: syntax error: unexpected end of file 

請幫助我新的Linux系統。

Runtime rt = Runtime.getRuntime();    
Process proc = rt.exec("sh -c \"cd /home/dipankar/NetBeansProjects/TransBench/Hindi;./mat\""); 
proc.waitFor(); 
+1

你是怎麼執行命令的?發佈代碼。 – codeMan

回答

3

鑑於標籤和症狀,我希望你使用的是exec方法,它採用的命令作爲一個String

這是行不通的。問題是該方法使用一個非常簡單的方案將命令字符串「解析」爲命令名稱和參數。它只是將字符串拆分成有空格的字符串......忽略任何引用以及任何其他shell的東西。

你需要做的是使用需要String[];例如

....exec(new String[]{ 
      "sh", 
      "-c", 
      "cd /home/dipankar/NetBeansProjects/TransBench/Hindi;./mat" 
    }); 
+0

非常感謝。 – CrazyLogic