问题描述:
在进程A中启动进程B,但是A和B路径不一样,比如说A启动路径在C;\A,B在C:\B,B启动后生成文件都生成到了C:\A目录下,后来通过传入虚拟机参数-Duser.dir=C:\B来设置进程B的启动路径,设置后在B中取System.getProperty("user.dir")是C:\B,但是通过相对路径生成文件依然在C:\A,如果生成文件时用相对路径但是取绝对文件,生成在C:\B下:
File f = new File("b.txt");
f = new File(f.getAbsolutePath());//取绝对文件,如果这一句不要,生成文件在C:\A
try
{
   FileWriter write = new FileWriter(f);
   write.write("xxx");
   write.flush();
}
catch (IOException ex)
{
  ex.printStackTrace();
}有没有什么办法能够告诉进程B它的启动路径呢???????

解决方案 »

  1.   

    用ProcessBuilder设置进程的属性就可以了
      

  2.   

    jdk5.0中可以用ProcessBuilder
    1.4中就不清楚了
      

  3.   

    多谢楼上各位,我们这个系统是运行在1.4.2上的,系统升级暂时倒没有规划,interpb(曾曾胡,深怕情多累美人!!!) 和 zx2002027(希望之星)两位智者能否提供更多信息?
    如果1.5可以的话倒是可以提前研究一下,我先试试,如果可以的话再给各位散分!请各位再就getAbsolutePath()可以取得绝对路径这个现象给点深入说明,多谢了!To be continued......