Рабочая таблица изменений файла 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).