Runtime.getRuntime().exec(...),参数带有空格的解决方法

简介:       今天在做用java自带的包来调用bat文件,当文件路径不带空格是执行正常,如下所示的情况是正常的: String command = "D:\\l\\phonemodel.bat";//exe,bat文件名OR DOS命令Process proc = Runtime.

      今天在做用java自带的包来调用bat文件,当文件路径不带空格是执行正常,如下所示的情况是正常的:

String command = "D:\\l\\phonemodel.bat";//exe,bat文件名OR DOS命令
Process proc = Runtime.getRuntime().exec(command);
       这样执行可以给正常调用程序,不过在正式的环境中,路径带有空格,直接这样写的话,程序就会报出异常了,仔细解读了下jdk 1.6的相关类中方法的处理,发现它是在带有空格的地方都加上了双引号,猜想问题可能出现在这里,所以程序修改如下,

String file = "E:\\Program Files\\Apache Software Foundation\\Tomcat 6.0\\webapps\\PhoneModel\\formalfiles\\20101218090959\\phonemodel.bat";
String command = "cmd /c start "+file.replaceAll(" ", "\" \"");
Process proc = Runtime.getRuntime().exec(command);


发现程序可以正常执行了,呵呵在这里记录一下,方便自己以后查找,也希望其他同行遇到同样的问题时尽早找到解决方法。
目录
相关文章
|
5月前
|
前端开发 Java
Java Process类Runtime.getRuntime().exec() 执行bat脚本程序
Java Process类Runtime.getRuntime().exec() 执行bat脚本程序
336 0
|
Unix Java Linux
Runtime.exec方法之获取process id
Runtime.exec方法之获取process id
206 0
|
C++ Windows
C++ 调用windows系统DOS命令的函数 system(char* command)
C++ 调用windows系统DOS命令的函数 system(char* command)
203 0
|
Java Shell Linux
java 调用外部程序(Runtime.getRuntime().exec)
java 调用外部程序(Runtime.getRuntime().exec)
976 0
java 调用外部程序(Runtime.getRuntime().exec)
“‘nrm 不是内部或外部命令,也不是可运行的程序,nrm报错 [ERR_INVALID_ARG_TYPE] 解决方法
“nprm 不是内部或外部命令,也不是可运行的程序, 看到这个错误,我们一下子就能明白,啥原因不能使用命令呢,那肯定就是环境变量没有配置啦。不管是哪个命令,报这个问题都是环境变量没有配置好。
“‘nrm 不是内部或外部命令,也不是可运行的程序,nrm报错 [ERR_INVALID_ARG_TYPE] 解决方法
Runtime.getRuntime().exec()如何调用7z解压文件
Runtime.getRuntime().exec()如何调用7z解压文件
108 0
|
移动开发 Java Windows
【开发环境】Java 文件生成 Windows 系统 .bat 批处理文件并自动执行 ( 输出 GB2312 格式处理中文乱码 | \r\n换行 | Runtime 执行 Cmd 命令 )
【开发环境】Java 文件生成 Windows 系统 .bat 批处理文件并自动执行 ( 输出 GB2312 格式处理中文乱码 | \r\n换行 | Runtime 执行 Cmd 命令 )
435 0
【开发环境】Java 文件生成 Windows 系统 .bat 批处理文件并自动执行 ( 输出 GB2312 格式处理中文乱码 | \r\n换行 | Runtime 执行 Cmd 命令 )
|
索引
Runtime(运行时)
1 /// 运行时 2 public static class Runtime 3 { 4 #region 控制台 5 static readonly IntPtr INVALID_HANDLE_VALUE = new IntPtr(-1); 6 7 private static Boolean? _IsConsole; 8 /// 是否控制台。
773 0
|
Python Shell Perl
python os.system重定向stdout到变量 ,同时获取返回值
Python执行系统命令的方法 os.system(),os.popen(),commands 最近在做那个测试框架的时候发现 Python 的另一个获得系统执行命令的返回值和输出的类。 最开始的时候用 Python 学会了 os.system() 这个方法是很多比如 C,Perl 相似的。
2622 0