Ответ 1
new URL(url, relativePath);
У меня есть URL:
URL url=new URL("http://www.abc.com/aa/bb/cc/file.html");
и относительный путь:
String relativePath="../file2.html"; //maybe is "/file3.html"
Я хочу получить http://www.abc.com/aa/bb/file2.html
с помощью переменных url
и relativePath
Как это сделать?
new URL(url, relativePath);
Попробуйте запустить win class URI вместо URL.
Чтобы получить URI из вашего URL-адреса:
java.net.URI anURI=url.toUri();
Затем, чтобы разрешить относительный URI:
URI resultURI=anURI.resolve(relativePath);
И наконец, чтобы получить тип URL, используйте метод toUrl() для переменной результата URI, и вы получили его.
Если вы хотите создать URL-адрес, указывающий на относительный файл, вы можете использовать:
URL url = new URL(new URL("file:"), "./myLocalFile.txt");
При создании относительного URL-адреса имейте в виду, что базой является путь к текущему пакету, а не файлу. Я имею в виду: файл-референт находится в .../myProject/src/pckg/javafile.java
, а ссылочный файл находится в .../myProject/some-other/nice.file
, тогда относительная ссылка должна выглядеть так:
URL url = new URL(new URL("file:"), "./../some-other/nice.file");
и это работает и для меня:
URL url = new URL("file:./../some-other/nice.file");