'How to get URL using relative path?

I have a URL:

URL url=new URL("https://example.com/aa/bb/cc/file.html");

and a relative path:

String relativePath="../file2.html"; //maybe is "/file3.html"

I want to get http://example.com/aa/bb/file2.html using variable url and relativePath

How to do it?



Solution 1:[1]

If you want to build an URL pointing to a relative file, you can use:

URL url = new URL(new URL("file:"), "./myLocalFile.txt");

Solution 2:[2]

Try operating winth the class URI instead of the URL.

To get the URI from your URL:

java.net.URI anURI=url.toUri();

Then, to resolve the relative URI:

URI resultURI=anURI.resolve(relativePath);

And at last, to get an URL type use de method toUrl() of the URI result variable, and you've got it.

Solution 3:[3]

When building relative URL, keep in mind that the base is path to current package, not file. I mean: the referer file is in .../myProject/src/pckg/javafile.java and the referated file is in .../myProject/some-other/nice.file, then the relative reference should look like this:

URL url = new URL(new URL("file:"), "./../some-other/nice.file");

and this works for me as well:

URL url = new URL("file:./../some-other/nice.file");

Solution 4:[4]

What I found worked is this:

new URL("file:./src/gui/Something.fxml")

Solution 5:[5]

This worked for my code
URL url=Myclass.class.getResource("/com/fnf/si/DepAcctInq_V02.wsdl");

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Camilo Díaz Repka
Solution 2 Tomas Narros
Solution 3 Jarda
Solution 4 Julius
Solution 5 June7