的getResource使用Java 1.7的Windows 7把领先/磁盘名称之前(getReso

2019-08-18 02:04发布

以下是该盘的名称前斜线。 我怎样才能避免这种情况?

String pngpath = getClass().getResource("/resources/lena.png").getPath();
System.out.println("pngpath = "+pngpath);

得到:

pngpath = /C:/Users/jgrimsdale/Documents/NetBeansProjects/HelloCV/build/classes/resources/lena.png

Answer 1:

使用:

String pngpath = getClass().getResource("/resources/lena.png").getFile();
File file = new File(pngpath);
System.out.println(file.getAbsolutePath());


Answer 2:

文件的构造函数(URI)或文件(串)有助于从依赖于系统的路径字符串或URI对象获取文件对象。

这是使用Java库的解决方案。

System.out.println(new File("/C:/Users/jgrimsdale").toString())

https://docs.oracle.com/javase/7/docs/api/java/io/File.html#File(java.net.URI)



Answer 3:

您可以使用此代码做到这一点。

System.out.println("pngpath = "+pngpath.substring(1,pngpath.length()));


文章来源: getResource puts a leading / before the disk name using java 1.7 windows 7