Что именно означает это предложение из this oracle java tutorial:
Относительный путь не может быть построен, если только один из путей включает корневой элемент. Если оба пути включают корневой элемент, возможность построения относительного пути зависит от системы.
С "системным различием" они означают только то, что, если элемент содержит корень, он будет работать только в написанном на платформе конкретном синтаксисе? Я думаю, это единственное, что они имеют в виду. Есть ли другие способы чтения этого?
например:
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); }
}
Исключением, которое я получаю с помощью "/home/sally/bar" вместо "home/sally/bar" (без root), является следующее:
java.lang.IllegalArgumentException: 'other' is different type of Path
Почему это не работает? каков конфликт с системой, что они означают?