java不支持运行时修改工作目录

启动时工作目录是
/Users/qkkcoolmax/work-private/testuserdir/hehe
/Users/qkkcoolmax/work-private/testuserdir/haha已经存在
 public static void main(String[] args) {
        File file = new File("haha/test.log");
        System.out.println(file.getAbsolutePath());
        //Users/qkkcoolmax/work-private/testuserdir/hehe/haha/test.log
        System.out.println(System.setProperty("user.dir", "/Users/qkkcoolmax/work-private/testuserdir"));
        //Users/qkkcoolmax/work-private/testuserdir/hehe
        System.out.println(System.getProperty("user.dir"));
        //Users/qkkcoolmax/work-private/testuserdir
        System.out.println(file.getAbsolutePath());
        //Users/qkkcoolmax/work-private/testuserdir/haha/test.log
        try {
            new FileOutputStream(file);
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
    }
java无法运行时修改工作目录,上图中file.getAbsolutePath返回的路径是不准确的。
当调用new  FileOutputStream()时,其最终输出路径仍然位于实际的工作目录,所以这里会由于hehe目录下不存在haha目录而抛出FileNotFoundExecption
file如果使用绝对路径来创建,则可避免工作路径无法修改带来的问题

猜你喜欢

转载自www.cnblogs.com/luliAngel/p/10520137.html
今日推荐