#java #path #relative-path
#java #путь #относительный путь
Вопрос:
Я использую Java для создания папки «myCoolFolder», подобной этой:
Files.createDirectories(Path.of("MyCoolFolder"));
Это относительный путь. Что меня удивляет, так это то, что папка иногда создается на один уровень глубже или выше в структуре папок, и я не знаю причину такого подозрительного поведения. Возможно, это зависит от того, как я запускаю проект и что он считает «рабочим каталогом», но я не совсем уверен в этом. Как я могу убедиться, что это всегда одна и та же папка?
Ответ №1:
Относительный путь разрешается относительно рабочего каталога процесса, который его разрешает.
Если он выполняется в разных местах в разное время, то либо процесс (приложение) запускается с (в) другом рабочем каталоге, либо (возможно) он меняет свой рабочий каталог. (Для процесса Java не существует переносимого способа изменить свой собственный рабочий каталог.)
Как я могу убедиться, что это всегда одна и та же папка?
Либо убедитесь, что вы запускаете свое Java-приложение с тем же (правильным) рабочим каталогом, либо используйте абсолютный путь к папке.
Комментарии:
1. Это то, что, как я думаю, происходит. К сожалению, мне не следует использовать абсолютный путь, и каждый раз запускать его с одним и тем же рабочим каталогом не является удовлетворяющим решением, потому что все, кто работает над этим кодом, должны быть особенно осторожны.
2. Ну, может быть, вы могли бы использовать путь относительно (скажем) домашнего каталога пользователя?
3. В идеале, я хочу, чтобы он был относительно основной папки проекта.