Рабочая таблица изменений файла Java

Я пишу некоторые модульные тесты. Я запускаю тесты, вызвав классы напрямую (вместо вызова другой программы). Проблема в том, что некоторые из этих классов используют данные, определенные относительными путями, поэтому они требуют, чтобы программа запускалась в определенном каталоге. Как я могу изменить это на Java?

Например, мой unit test начинается с 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.

Ответ 1

Обновление моего ответа, так как VolkerSeibt указал, что он был неправильным. Хороший улов.

Это возможно через System.setProperty. Вы можете изменить текущий рабочий каталог, изменив системное свойство "user.dir":

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

Подробнее см. http://www.javacodex.com/Files/Set-The-Current-Working-Directory.

Ответ 2

Я думаю, что рабочий каталог определяется каталогом, в котором запускался jvm (каталог, используемый при выполнении java).