别把jdk装到program files下?
?? 这些天遇到一个问题, 也就引出了本博客里的标题.?
?
?? ?问题是这样的. ?一个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下吗?
1 楼 celebration 2008-09-05 Program Files加上双引号,应该可以解决这个问题,跟命令行下的cd Program Files不能正常跳到你想去的目录是一样的,他们都不支持名称中间有个空格,会认为你执行的是cd Program命令。加“”之后需要进行下转移处理,有点麻烦。 2 楼 pstinghua 2008-10-20 试试new File(path).getCanonicalPath(),现在linux也没法试下