Tworzenie ścieżki między dwiema ścieżkami w Javie przy użyciu klasy Path

Co dokładnie oznacza to zdanieto oracle java tutorial:

Ścieżki względnej nie można skonstruować, jeśli tylko jedna ze ścieżek zawiera element główny. Jeśli obie ścieżki zawierają element główny, możliwość skonstruowania ścieżki względnej zależy od systemu.

Czy w przypadku „system dipendent” mają one na myśli tylko to, że jeśli element zawiera root, będzie działał tylko w składni specyficznej dla platformy, która została napisana? Myślę, że to jedyna rzecz, którą mają na myśli. Czy są jakieś inne sposoby czytania?

na przykład :

public class AnotherOnePathTheDust {
    public static void main (String []args)
    {
    Path p1 = Paths.get("home");
    Path p3 = Paths.get("home/sally/bar"); //with "/home/sally/bar" i would get an exception.
    // Result is sally/bar
    Path p1_to_p3 = p1.relativize(p3);
    // Result is ../..

    Path p3_to_p1 = p3.relativize(p1);
    System.out.println(p3_to_p1);   }
}

Wyjątkiem, który otrzymuję używając „/ home / sally / bar” zamiast „home / sally / bar” (bez roota) jest ten:

 java.lang.IllegalArgumentException: 'other' is different type of Path

Dlaczego to nie działa? jaki jest konflikt z systemem, który mają na myśli?

questionAnswers(4)

yourAnswerToTheQuestion