12

我正在写一些单元测试。我通过直接调用类(而不是调用另一个程序)来运行测试。问题是其中一些类使用由相对路径定义的数据,因此它们要求程序在特定目录中启动。我怎样才能在Java中改变它?

比如我的单元测试从 开始C:/unittest,我需要的数据在C:/OtherProject. 如果可能的话我不想修改其他项目的代码,java中是否有这样的东西:

File.setWorkingDir("C:/OtherProject");

这样,当类似的东西

File file = new File("data/data.csv");

将读取C:/OtherProject/data/data.csv而不是C:/unittest/data/data.csv.

4

1 回答 1

15

更新我的答案,因为 VolkerSeibt 指出这是不正确的。接得好。

这可以通过System.setProperty. 您可以通过更改"user.dir"系统属性来更改当前工作目录:

System.setProperty("user.dir", "/foo/bar");

有关进一步说明,请参阅http://www.javacodex.com/Files/Set-The-Current-Working-Directory

于 2013-09-25T15:34:48.327 回答