ClassLoader提供了两个方法用于从装载的类路径中取得资源:
public URL getResource(String name);
public InputStream getResourceAsStream(String name);
这里name是资源的类路径,它是相对与“/”根路径下的位置。getResource得到的是一个URL对象来定位资源,而getResourceAsStream取得该资源输入流的引用保证程序可以从正确的位置抽取数据。
但当我第一次调用这两个方法的时候,却没能取得我想要的资源。原来真正使用的不是ClassLoader的这两个方法,而是Class的
getResource和getResourceAsStream方法,因为Class对象可以从你的类得到(如YourClass.class或
YourClass.getClass()),而ClassLoader则需要再调用一次YourClass.getClassLoader()方法,但
根据JDK文档的说法,Class对象的这两个方法其实是“委托”(delegate)给装载它的ClassLoader来做的,所以只需要使用
Class对象的这两个方法就可以了。
结论: 调用如下代码得到正解。
this.getClass.getResourceAsStream(String name);
分享到:
相关推荐
本文将详细介绍Java中获取文件路径的各种方法及其应用场景,帮助开发者更好地理解和掌握这些技巧。 #### 二、基本概念 在深入讨论之前,我们需要了解几个基本概念: - **Classpath**: 是Java运行环境的一个重要...
本文将详细解析如何在Java中获取`CLASSPATH`路径,并介绍相关的方法和技术。 首先,`ClassLoader`类是Java中负责加载类和资源的核心组件。它提供了两个方法来获取资源: 1. `public URL getResource(String name)`...
- 通常,Java项目有一个标准的目录结构,如`src/main/java`用于存放Java源代码,`src/main/resources`用于存放资源文件,如配置文件、图片或文本文件等。如果你的文件直接放在`src`目录下,可能意味着它是在源代码...
在Java Web应用中,资源文件的位置可能会变化,此时可以通过`ClassLoader`来获取资源的URL或路径。 ```java // 获取当前类的ClassLoader ClassLoader classLoader = this.getClass().getClassLoader(); // 获取资源...
本文将详细介绍在Java中获取类路径的几种常见方法,以供开发者参考。 首先,类路径(classpath)是Java应用程序在运行时查找和加载类的路径集合。它可以通过命令行选项 `-cp` 或 `-classpath` 在启动Java应用时指定...
在Java编程中,获取Java路径以及CLASSPATH外部的路径是非常关键的操作,尤其当需要加载类、资源文件或进行系统级操作时。这篇文章主要探讨了几种获取这些路径的方法。 首先,我们来看一下如何获取Java路径。Java...
以下是一些在Java中获取文件绝对路径的方法: 1. `File.getAbsolutePath()` `java.io.File` 类提供了 `getAbsolutePath()` 方法,此方法返回表示文件或目录的绝对路径字符串。例如: ```java File file = new ...
这些方法可以灵活地定位和加载不同位置的资源文件,为开发提供了很大的便利性。 #### 五、注意事项 - 使用`System.getProperty("user.dir")`获取当前工作目录的路径时需要注意,它返回的是当前工作目录的绝对路径...
在Java中,处理文件时通常会遇到两种类型的路径:**相对路径**与**绝对路径**。 - **相对路径**:指的是相对于当前工作目录或类路径(Classpath)的一种路径表示方式。 - **绝对路径**:则是一种完整地指明文件位置...
在某些情况下,我们可能需要获取项目的ClassPath路径,以便于访问位于该路径下的资源文件。以下是一些获取ClassPath路径的方法: 1. **通过类的getResource方法**: ```java String classPath = DebitNoteAction....
资源文件通常存储在项目的类路径(classpath)下,可以是.properties、.txt、.xml等形式,它们提供了与代码分离的配置选项。对于.properties文件,Java提供了一个内置的Properties类来管理和读取这些文件。 1. **...
- **作用**:当Java程序运行时,JVM会根据`classpath`来定位所需的类文件(`.class`文件)和其他资源文件。如果没有正确配置`classpath`,可能会导致类找不到异常(ClassNotFoundException)等错误。 #### 三、环境...
1. 相对于classpath的相对路径:如在`file:/D:/java/eclipse32/workspace/jbpmtest3/bin/`这个classpath路径下的相对路径,这意味着你需要结合classpath的基路径来解析资源的实际位置。 2. 相对于当前用户目录的相对...
为了更有效地使用路径,下面列出了一些获取当前classpath和类文件绝对路径的方法: 1. **使用 `FileTest.class.getResource("")`**:这种方法可以获取当前类 `FileTest.class` 文件的URI目录,但不包含自身。例如:...
1. `getRealPath()`:这个方法返回一个字符串,表示相对于Web应用根目录的类路径资源的实际文件系统路径。例如,如果你有一个配置文件位于`WEB-INF/classes/config.properties`,你可以使用如下的代码来获取其实际...
在Spring Boot中,静态资源可以存储在classpath下的静态资源文件夹中,也可以存储在相对路径下的文件夹中。如果我们的静态资源存储在相对路径下的文件夹中,那么如何在Spring Boot中获取这些静态资源呢? 首先,...
如果存在同名的配置文件,但位于不同的位置,根据Spring加载类路径资源的策略,可能会加载到一个错误的文件。为了避免这种情况,开发者需要仔细设计自己的目录结构,并确保配置文件的命名和位置唯一,以避免冲突。 ...
总结来说,Java中的路径问题涉及多种路径类型、API和配置方式,理解这些概念对于进行文件操作和构建复杂应用至关重要。无论是简单的文件读写,还是复杂的类加载逻辑,都需要对路径有深入的理解。通过熟练掌握这些...