Относительный путь в Java
Метод relativize строит относительный путь от текущего
Path к переданному. Оба пути лучше привести к абсолютным
и нормализованным, иначе результат может быть неожиданным:
import java.nio.file.Path;
import java.nio.file.Paths;
Path base = Paths.get("work").toAbsolutePath().normalize();
Path doc = Paths.get("work/reports/day.txt").toAbsolutePath().normalize();
System.out.println(base.relativize(doc));
Для root/data/x.txt и базы root
выведите относительный путь.
Для apps/demo/run.log относительно apps
выведите относительный путь строкой.