EOF在寻找匹配的“”错误时

时间:2013-04-17 09:36:25

标签: java linux runtime eof

sh -c "cd /home/dipankar/NetBeansProjects/TransBench/Hindi;./mat"

在linux终端执行以下命令时,它会完美执行。但是,当我尝试使用java运行时运行相同时,它会出现以下错误:

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 个答案:

答案 0 :(得分:4)

鉴于标记和症状,我希望您使用exec方法将命令作为单个String

那不行。问题是该方法使用一种非常简单的方案将命令字符串“解析”为命令名和参数。它简单地将字符串拆分为有空格的地方......忽略任何引用和任何其他shell的东西。

您需要做的是使用占用String[]的重载; e.g。

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