Как получить абсолютный путь к папке <project>\ taget - PullRequest
0 голосов
/ 14 апреля 2019

Мне нужно получить абсолютный путь к папке <project>/target. Я использую следующий код:

Main main = new Main();
String testPath = main.getClass().getResource("").getPath();
System.out.println(testPath);

Возвращает путь как /E:/java/main/target/classes/ Но мне нужно получить /E:/java/main/target/

Как мне установить значение в getResource()?

В моем решении я не могу использовать System.getProperty("user.dir"); по некоторым причинам.

1 Ответ

0 голосов
/ 14 апреля 2019

Следующая строка найдет вас в базовом каталоге, где находятся папки src, resources и target:

System.getProperty("user.dir");

Это каталог, где была запущена JVMи эти свойства описаны в Свойства системы .Полный поиск будет выглядеть так:

final String targetPath = System.getProperty("user.dir");
final File target = Arrays.stream(new File(targetPath).listFiles(File::isDirectory))
    .filter(file -> "target".equals(file.getName()))
    .findAny()
    .orElseThrow(() -> new FileNotFoundException("The target has not been found"));
...