Подтвердить что ты не робот

Использование относительного пути каталога в Java

Я пытаюсь использовать относительный путь для поиска исполняемого файла в классе Java вместо стробированных строк, которые работали, но используя что-то вроде:

final static String directory = "../../../ggla/samples/obj/linux_x86"

не удается... Каков правильный способ использования относительного пути в Java?

4b9b3361

Ответ 1

Наиболее вероятным объяснением является то, что ваш текущий каталог не тот, где вы думаете, что он есть. Вы можете проверить системное свойство user.dir, чтобы узнать, что такое базовый путь приложения, или вы можете сделать что-то вроде этого:

 System.out.println(new File(".").getCanonicalPath());

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

Ответ 2

Использовать System.out.println(System.getProperty( "user.dir" )); чтобы узнать, где находится ваш текущий каталог. Затем вы можете использовать относительные пути с этого адреса.

Альтернативно, если вам не нужно обновлять файл, который вы пытаетесь прочитать, получить его из пути к классам, используя getResourceAsStream ( "filename" );

Карл

Ответ 3

Вам нужно getCanonicalPath или getCanonicalFile, чтобы разрешить относительные пути.

System.out.println(new File("../../../ggla/samples/obj/linux_x86")
    .getCanonicalPath());

Ответ 4

Вы можете использовать относительные пути, как вы описываете, и они должны работать. Таким образом, ошибка, вероятно, где-то в другом месте.

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

Ответ 5

Я бы начал с использования разделителя и разделителя путей, указанного в Java File class. Однако, как я сказал в своем комментарии, мне нужна дополнительная информация, чем "она не помогает".

Ответ 6

Для относительного пути, возможно, вы можете использовать один из методов, предоставляемых java для начала относительного пути как getRelativePath.... Вы должны использовать /, а не//в строке в java!