runtime.getruntime.exec打开带括号文件名问题

如C:/test(123)/123.bat 不改变文件名的情况下如何用Runtime.getRuntime().exec打开

[code="java"]
ArrayList cmdlist = new ArrayList();
cmdlist.add("cmd"); // 如果你用数组的, 命令则需要完全拆分开...
cmdlist.add("/c");
cmdlist.add("C:\test^(123)\test.bat"); // 左括号用^转义一下, 用\即可, 不需要\\,

cmdlist.add("-N");
cmdlist.add("test_server");
cmdlist.add("-L");
cmdlist.add("C:\test(123)\test1 hoho\");
[/code]

[code="java"]public class Test {
public static void main(String[] args) throws Exception {
Runtime.getRuntime().exec("cmd /c start c:\te()st.xml");
}
}[/code]

有()和没有括号是一个样的! :D

把你的代码和异常贴出来瞧下

[color=blue]改成[b]C:\test(123)\123.bat[/b]试试[/color]

是啊,要用双斜杆啊,C:\test(123)\123.bat

cmd /c start C:\test(123)\test.bat

[color=red]cmd /c start C:\test(123)\test.bat[/color]

你把调用的那段代码贴出来看看

路径上使用小括号“()”时,系统把括号前面的当做命令,里面的当参数了

[color=blue][b]对了, 中间也需要去掉了start....[/b][/color]