Cra*_*gic 1 java linux runtime eof
sh -c "cd /home/dipankar/NetBeansProjects/TransBench/Hindi;./mat"
Run Code Online (Sandbox Code Playgroud)
在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
Run Code Online (Sandbox Code Playgroud)
请帮助我是Linux新手。
Runtime rt = Runtime.getRuntime();
Process proc = rt.exec("sh -c \"cd /home/dipankar/NetBeansProjects/TransBench/Hindi;./mat\"");
proc.waitFor();
Run Code Online (Sandbox Code Playgroud)
给定标签和症状,我希望您使用的exec
是将命令作为单个命令使用的方法String
。
那行不通。问题在于该方法使用一种非常简单的方案将命令字符串“解析”为命令名称和参数。它只是在存在空格的地方拆分字符串,而忽略任何引号和任何其他shell内容。
您需要做的是使用需要一个String[]
; 的重载。例如
....exec(new String[]{
"sh",
"-c",
"cd /home/dipankar/NetBeansProjects/TransBench/Hindi;./mat"
});
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1087 次 |
最近记录: |