ProcessBuilder - 使用参数运行bat文件 - 路径中的空格

时间:2014-04-29 16:04:49

标签: java windows processbuilder

对于processbuilder和“路径中的空间”,stackoverflow上有很多问题。我已经尝试了很多,但没有人为我工作..让我们说明问题:

假设“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变量不起作用。

有什么建议吗?

0 个答案:

没有答案