URL url = this.getClass().getClassLoader().getResource("F:\\IDEA_Project\\swingExe\\configurationFiles\\image\\icon2.png"); 找不到文件
时间: 2024-03-09 19:43:00 浏览: 86
Java 使用getClass().getResourceAsStream()方法获取资源
这里提供了两个引用,分别讨论了`this.getClass().getClassLoader().getResource`和`this.getClass().getResource`的区别和联系[^1]。根据这些引用,可以得出以下结论:
- `this.getClass().getClassLoader().getResource`方法是通过类加载器获取资源的路径。当路径不以`'/'`开头时,默认从该类所在的包下取资源;当路径以`'/'`开头时,则从项目的ClassPath根下获取资源。
- `this.getClass().getResource`方法也是通过类加载器获取资源的路径。当路径不以`'/'`开头时,默认从该类所在的包下取资源;当路径以`'/'`开头时,则从ClassPath根下获取资源。
- 对于`getResource("/")`,`'/'`表示Boot ClassLoader中的加载范围,因为这个类加载器是C++实现的,所以加载范围为null。
根据你提供的代码`URL url = this.getClass().getClassLoader().getResource("F:\\IDEA_Project\\swingExe\\configurationFiles\\image\\icon2.png");`,你使用了绝对路径来获取资源。然而,`getResource`方法只能获取ClassPath下的资源,无法直接获取绝对路径下的资源。因此,找不到文件的原因是路径不正确。
阅读全文