Java getResource()意外路径

时间:2014-10-11 09:31:59

标签: java

我想要以下列形式的资源的网址

  

C:/用户/.../构建/类/果酱/ lena1.png

为实现这一目标,我编写了以下代码

System.out.println(getClass().getResource("lena1.png").getPath());

但它返回

  

/ C:/用户/.../构建/类/果酱/ lena1.png

为什么额外的正斜杠出现在网址之前?

4 个答案:

答案 0 :(得分:3)

注意Class.getResource()返回 URL ,而 URL 不仅是文件路径:URL涉及协议,a主机,端口和路径。它有自己的符号和格式。

根据RFC2396,您在示例中获得的是网址的路径部分,路径始终以斜杠开头。

如果您想从URL获取文件,可以使用new File(url.toURI()) ...假设输入URL实际上引用了本地文件路径。

答案 1 :(得分:1)

因为它是一个URL,而不是文件名。

问题本身很奇怪。您关心URL的路径是什么?

答案 2 :(得分:-1)

前导斜杠表示类路径的根。试试这个:System.out.println(getClass().getResource("/lena1.png").getPath());

答案 3 :(得分:-1)

使用此

String s = (getClass().getResource("lena1.png").getPath()).substring(1);
System.out.println(s);