我有一个Java servlet,它使用Reflection来调用其他Java方法。我调用的一些Java方法生成文件,我希望能够将这些文件移动到另一个位置。
目前,如果方法中未提供绝对路径(例如PrintWriter outFile = new PrintWriter(“prog.out”)),则输出文件将被抛入我的Tomcat安装的bin目录中。
我尝试使用以下代码设置CWD,其中myDataDir是我希望输出文件进入的目录:
File directory;
directory = new File(myDataDir.getPath()).getAbsoluteFile();
if (directory.exists() || directory.mkdirs()) {
System.setProperty("user.dir", directory.getAbsolutePath());
}
我甚至已经进入了我编写的Java方法的代码,并打印出来自那里的“user.dir”。即使在那里,它告诉我所有设置都正确(例如“user.dir”== / path / that / i / want)。然而,当我使用反射调用方法时,输出文件将被放入bin目录。
以前有没有经历过这样的事情?任何指针或指导都将非常感激。
一些细节:
谢谢!