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);


发现程序可以正常执行了,呵呵在这里记录一下,方便自己以后查找,也希望其他同行遇到同样的问题时尽早找到解决方法。
目录
相关文章
|
9月前
|
前端开发 Java
Java Process类Runtime.getRuntime().exec() 执行bat脚本程序
Java Process类Runtime.getRuntime().exec() 执行bat脚本程序
516 0
|
3月前
|
Java Shell Windows
java Runtime.exec()执行shell/cmd命令:常见的几种陷阱与一种完善实现
java Runtime.exec()执行shell/cmd命令:常见的几种陷阱与一种完善实现
85 1
|
4月前
|
Ubuntu Unix Shell
sh执行脚本报错Syntax error: “(“ unexpected ​的两种解决办法
​sh执行脚本报错Syntax error: “(“ unexpected ​的两种解决办法
|
8月前
|
Unix Docker 容器
使用docker 启动naocs 报错出现:standard_init_linux.go:241: exec user process caused "exec format error"
```markdown Error in Docker container startup: "standard_init_linux.go:241: exec user process caused \"exec format error\"". Occurred at 2024-06-29 09:26:19.910, followed by a failed hook with a syslog delivery error at 09:27:20.193. Seeking solutions from experts. ```
|
Unix Java Linux
Runtime.exec方法之获取process id
Runtime.exec方法之获取process id
233 0
|
Shell C++
C++中的exec()函数
exec()函数在C++中是一个进程控制函数,用于创建新进程执行其他程序或命令行指令。exec()函数可以替换当前进程的代码和数据,创建新的进程运行其他程序。exec()函数有多个版本,例如execl、execv、execle、execve等,根据不同的参数类型和个数来使用。
201 0
|
Java Shell Linux
java 调用外部程序(Runtime.getRuntime().exec)
java 调用外部程序(Runtime.getRuntime().exec)
1078 0
java 调用外部程序(Runtime.getRuntime().exec)
Runtime.getRuntime().exec()如何调用7z解压文件
Runtime.getRuntime().exec()如何调用7z解压文件
121 0
Idea运行报错Error running ‘Application‘: Command line is too long的解决方法
Idea运行报错Error running ‘Application‘: Command line is too long的解决方法
222 0
|
Ubuntu Linux 应用服务中间件
OCI runtime exec failed: exec failed: container_linux.go:380: starting container process caused: exec: "ip": executable file not found in $PATH: unknown (Docker容器没有ip addr命令:exec ip addr 报错)
OCI runtime exec failed: exec failed: container_linux.go:380: starting container process caused: exec: "ip": executable file not found in $PATH: unknown (Docker容器没有ip addr命令:exec ip addr 报错)
3806 0