What does exactly mean this sentence from this oracle java tutorial:
A relative path cannot be constructed if only one of the paths includes a root element. If both paths include a root element, the capability to construct a relative path is system dependent.
With "system dipendent" do they mean only that if an element contains a root it will work only in the platform specific syntax that has been written? I guess it is the only thing they mean. Are there any other ways of reading that?
for example :
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); }
}
The exception that I get by using "/home/sally/bar" instead of "home/sally/bar" (without root) is this one:
java.lang.IllegalArgumentException: 'other' is different type of Path
Why does it not work? what is the conflict with the system that they mean?