Вопрос-ответ

How to get the current working directory in Java?

Как получить текущий рабочий каталог в Java?

Я хочу получить доступ к своему текущему рабочему каталогу с помощью Java.

Мой код:

 String currentPath = new java.io.File(".").getCanonicalPath();
System.out.println("Current dir:" + currentPath);

String currentDir = System.getProperty("user.dir");
System.out.println("Current dir using System:" + currentDir);

Вывод:

Current dir: C:\WINDOWS\system32
Current dir using System: C:\WINDOWS\system32

Мой вывод некорректен, потому что диск C не является моим текущим каталогом.

Как получить текущий каталог?

Переведено автоматически
Ответ 1

Код :

public class JavaApplication {
public static void main(String[] args) {
System.out.println("Working Directory = " + System.getProperty("user.dir"));
}
}

При этом будет выведен абсолютный путь к текущему каталогу, из которого было инициализировано ваше приложение.


Объяснение:

Из документации:

java.io относительные пути к пакету разрешаются с использованием текущего пользовательского каталога. Текущий каталог представлен как системное свойство, то есть, user.dir и является каталогом, из которого была вызвана JVM.

Ответ 2

Смотрите: Операции с путями (Руководства по Java ™ > Основные классы> Базовый ввод-вывод).

Используя java.nio.file.Path и java.nio.file.Paths, вы можете сделать следующее, чтобы показать, что Java считает вашим текущим путем. Это для 7 и далее, и использует NIO.

Path currentRelativePath = Paths.get("");
String s = currentRelativePath.toAbsolutePath().toString();
System.out.println("Current absolute path is: " + s);

Это выводит:

Current absolute path is: /Users/george/NetBeansProjects/Tutorials

в моем случае именно оттуда я запустил класс.

Построение путей относительным способом, без использования начального разделителя для указания, что вы создаете абсолютный путь, будет использовать этот относительный путь в качестве отправной точки.

Ответ 3

Следующее работает на Java 7 и выше (документацию смотрите Здесь).

import java.nio.file.Paths;

Paths.get(".").toAbsolutePath().normalize().toString();
Ответ 4

Это даст вам путь к вашему текущему рабочему каталогу:

Path path = FileSystems.getDefault().getPath(".");

И это даст вам путь к файлу с именем "Foo.txt" в рабочем каталоге:

Path path = FileSystems.getDefault().getPath("Foo.txt");

Редактировать :
Чтобы получить абсолютный путь к текущему каталогу:

Path path = FileSystems.getDefault().getPath(".").toAbsolutePath();

* Обновить *
Чтобы получить текущий рабочий каталог:

Path path = FileSystems.getDefault().getPath("").toAbsolutePath();
2023-11-21 14:53 java