Относительный путь, построенный Java с использованием "../../", не распознается, почему?

Hind Forsum спросил: 07 октября 2018 в 01:59 в: java

Я использую intellij для разработки java, в моем каталоге project / src я получил файл my.json, и моя java-программа выглядит так:

import java.io.File;
public class My {
    public static void main(String [] args){
        String s = My.class.getResource(".") + "../../src/my.json";
        File f = new File(s);
        System.out.println(s+" exists: "+f.exists());
    }
}

It печатает:

file:/Users/x/java_local/target/classes/../../src/my.json exists: false

Но если я"ls" в командной строке:

ls /Users/x/java_local/target/classes/../../src/my.json

Тогда я это вижу.

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

Я на Mac. Любые объяснения о том, как происходит эта проблема и как я могу ее исправить?

Спасибо

0 ответов