更改通过Java.Lang.Reflect

时间:2017-04-28 01:32:24

标签: java tomcat reflection

我有一个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目录。

以前有没有经历过这样的事情?任何指针或指导都将非常感激。

一些细节:

  • 在Redhat 7.3上运行
  • 使用Tomcat版本8.0.36
  • 使用Maven构建3.3.9
  • Java 1.7.0

谢谢!

0 个答案:

没有答案