Dav*_*ave 5 java build-process process runtime.exec
我正在与Java的Runtime exec方法中的space bug进行斗争.这是这个问题的独特之处:我试图执行的命令是一个传入的字符串,可能有也可能没有空格,不一定是任何特定的格式.无论哪种方式,我都需要执行它.如果没有空格,我很好; 如果有空格,我就不太好了.
我如何解释这两种情况?
奖金信息免费:其中一个重大问题似乎是我试图在c:\ program files\blablabla中调用可执行文件......并且exec似乎在'c:\ program'之后拆分空格.我也相信其他问题也会出现在参数中.
这是我可能得到的各种字符串的更具体的例子.这应该清除一些混乱:
第一个工作正常,因为它没有空格.第二个甚至可以,因为它在空间上分裂并使用第一个作为命令,第二个作为参数.第三个和第四个例子在第一个空格上分开,使用'C:\ program'和命令,'files ...'和(在第四个字符串的情况下)'-someParam = bar'作为参数.
好吧,我通过做这样的事情得到了一些东西。请告诉我这种方法是否有问题:
try{
String[] command = {"cmd", "/c", getMySuperAwesomeString()};
Runtime.getRuntime().exec(command);
}catch(IOExecption ioe){
System.err.println("I'm borken");
}
在相关说明中,我应该使用 ProcessBuilder 吗?
归档时间: |
|
查看次数: |
8069 次 |
最近记录: |