这些天遇到一个问题, 也就引出了本博客里的标题.
问题是这样的. 一个Java程序要启动两个java进程A和B,第一个进程A是按正常的启动方式进行的,这里边没什么问题;第二个进程B是在进程A里通过调用Runtime.getRuntime().exec(mCmd, mEnv, mDir)的形式启动的. 问题就出在传的参数mCmd上了, 这个mCmd的值是从一个xml文件里读来的, 这个xml的内容大致如下:
<app name="WP" cmd="C:\Program Files\Java\jdk1.6.0_07\bin\java -server -XX:+UseConcMarkSweepGC -...." />
这样执行exec方法时,JVM就报无法执行"C:\Program Files\Java\jdk1.6.0_07\bin\java"所指向的命令了, 原因很简单Windows没法找到没引号的"Program Files"文件夹,它会在空格处断开的.
这个怎么办?
我试着给Program Files加了单引号,还是不行,windows仍然不认.
想给Program Files文件夹改名,可windows又不让!
..............
无奈了,只能在C盘根目录下另又装了一个JDK.
难道真的不要把JDK装到program files下吗?