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

Я сказал бы, что у Вас должно быть столько же как требуется или любой, которые делают инструмент для очистки кода (такой как защитные пункты ).

я лично никогда не слышал/видел, что любые "лучшие практики" говорят, что у Вас должен быть только один оператор возврата.

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

21
задан David says Reinstate Monica 4 February 2015 в 16:50
поделиться

6 ответов

The most likely explanation is that your current directory is not where you think that it is. You can inspect the system property of user.dir to see what the base path of the application is, or you can do something like this:

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

right before you use that relative path to debug where your relative reference starts.

39
ответ дан 29 November 2019 в 20:32
поделиться

Use System.out.println(System.getProperty("user.dir")); to see where your current directory is. You can then use relative paths from this address.

Alternatively if you dont need to update the file you are trying to read obtain it from the classpath using getResourceAsStream("filename");

Karl

2
ответ дан 29 November 2019 в 20:32
поделиться

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

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

0
ответ дан 29 November 2019 в 20:32
поделиться

What you need is getCanonicalPath or getCanonicalFile to resolve the relative paths.

System.out.println(new File("../../../ggla/samples/obj/linux_x86")
    .getCanonicalPath());
1
ответ дан 29 November 2019 в 20:32
поделиться

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

0
ответ дан 29 November 2019 в 20:32
поделиться

For relative path, maybe you can use one of the method provide by java for the beginning of the relative path as getRelativePath.... You have to use / and not // in the String in java !

0
ответ дан 29 November 2019 в 20:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: