getresource java_java – class.getResource(“.”)返回null
时间: 2024-04-28 15:21:33 浏览: 11
如果 `class.getResource(".")` 返回 `null`,那么通常是因为当前类所在的包路径在类路径上不存在。这可能是因为你没有将当前类所在的包路径包含在你的类路径中,或者在你的类路径中缺少某些必要的 JAR 文件或类文件。请确保你的类路径正确设置,并且包含了当前类所在的包路径。如果问题仍然存在,可以尝试使用 `ClassLoader.getResource(".")` 方法,它会从整个类路径中查找资源。
相关问题
java.lang.Class.getResource用法?
java.lang.Class.getResource() 方法用于获取给定名称的资源,其默认行为是在调用此方法的类的classpath中查找资源。
该方法有两种形式:
1. public URL getResource(String name):返回具有给定名称的资源的URL,如果未找到该资源,则返回null。
2. public InputStream getResourceAsStream(String name):返回具有给定名称的资源的InputStream,如果未找到该资源,则返回null。
例如,假设我们有一个名为"sample.txt"的文本文件在类路径下的"resources"文件夹中。我们可以使用以下代码访问它:
```
InputStream inputStream = getClass().getResourceAsStream("/resources/sample.txt");
```
这将返回一个指向该文件的InputStream。注意,我们在资源名称前加上了"/",这是因为资源名称应该始终以"/"开头,以表示它是绝对路径。
this.class.getClassLoader().getResource()为空
这个问题可能是因为资源文件没有被正确地加载。getClassLoader()方法会返回一个ClassLoader对象,用来加载类路径下的资源文件。如果getResource()方法返回null,那么可能是资源文件的路径不正确或者资源文件没有被正确地加载。
你可以尝试使用绝对路径来加载资源文件,例如:
```
this.getClass().getResource("/path/to/resource/file");
```
其中,"/path/to/resource/file"是资源文件的绝对路径。如果资源文件在类路径下的根目录,可以使用以下代码加载:
```
this.getClass().getResource("/filename");
```
如果资源文件在类路径下的某个包中,可以使用以下代码加载:
```
this.getClass().getResource("/package/filename");
```
注意,getResource()方法返回的是一个URL对象,你需要使用openStream()方法获取资源文件的输入流。例如:
```
InputStream inputStream = this.getClass().getResourceAsStream("/path/to/resource/file");
```
这样就可以获取到资源文件的输入流了。