2013-04-17 53 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