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
System dependent here refers to the specific OS implementation I would assume. So Linux will handle this differently than Windows will, etc. Without root paths (i.e. paths starting with /), both paths are assumed to be siblings, sitting on the same level (i.e. in /home/sally). So when you try to relativize, if they are not on the same level, there is no guarantee where the non-root path is stored, which makes sense if you think about it. Does that help?