假设“dir”变量指向退出的目录:
URI outputURI = new URI(("file:///"+ dir));
File f = new File(outputURI);
for (final File fileEntry : f.listFiles()) {
if(fileEntry.getName().equals("R.bat")){
dir = fileEntry.getAbsolutePath();
}
}
expr[0] = dir;//"\""+dir+"\"";
expr[1] = "-e";
expr[2] = "\"library(Rserve);Rserve("+(debug?"TRUE":"FALSE")+",args='"+rsrvargs+"')\"";
expr[3] = "--no-save";
expr[4] = "--slave";
ProcessBuilder pb = new ProcessBuilder(expr);
pb.directory(f);
p = pb.start();
如果
dir = fileEntry.getAbsolutePath();
返回没有空格的路径,一切正常。但如果它包含空格,则该过程不会启动。引用dir变量不起作用。
有什么建议吗?