看图
System.out.println(PhotoAlbumController.class.getResource("/"));
System.out.println(PhotoAlbumController.class.getResource(""));
System.out.println(PhotoAlbumController.class.getClassLoader().getResource("/"));
System.out.println(PhotoAlbumController.class.getClassLoader().getResource(""));
File f = new File(PhotoAlbumController.class.getClassLoader().getResource("").getPath());
System.out.println(f.exists());
结果:
file:/F:/kids/server/mytomcat/apache-tomcat-6.0.18/webapps/sns/WEB-INF/classes/
file:/F:/kids/server/mytomcat/apache-tomcat-6.0.18/webapps/sns/WEB-INF/classes/com/kids21/sns/web/info/
file:/F:/kids/server/mytomcat/apache-tomcat-6.0.18/webapps/sns/WEB-INF/classes/
file:/F:/kids/server/mytomcat/apache-tomcat-6.0.18/webapps/sns/WEB-INF/classes/
true
- 大小: 118.9 KB
分享到:
相关推荐
这两个方法可以根据不同的类加载器实例来获取资源的不同位置,例如当前类加载器、系统类加载器等。 ##### 4.2 示例代码解析 根据提供的部分代码示例,我们可以看到不同的方法调用方式以及它们对应的资源路径: 1....
2. **通过ClassLoader获取资源**: - 除了通过类的`getResource()`方法外,还可以通过`ClassLoader`来获取资源: ```java String f = Hello.class.getClassLoader().getResource("4.txt").getPath(); ``` - ...
但是,在 war 包中,使用 ClassLoader 获取资源文件会出现问题,因为 war 包中的资源文件是压缩的,无法直接访问。 解决方法是使用 ClassLoader 的 getResourceAsStream() 方法获取资源文件的流,通过流来读取资源...
3. OSGi的ClassLoader还支持类的重用,如果两个bundle引用了相同的类库,它们可以共享同一个ClassLoader,从而节省内存资源。 总结来说,Java ClassLoader机制是Java平台的基础,它使得程序能够动态地加载和管理类...
一、通过 ClassLoader 获取资源 在 Java 中,我们可以通过 ClassLoader 来获取类资源。ClassLoader 是 Java 中的一个类加载器,它可以加载类文件和资源文件。我们可以使用 ClassLoader 的 getResourceAsStream() ...
lass.getResourceAsStream(String path) : path 不以’/'开头时默认是从此类所在的包下取资源,以’/'开头则是从ClassPath根下获取。其实也是通过path构造一个绝对路径,最终还是由ClassLoader获取资源。
本案例聚焦于如何利用静态代码块结合类加载器来高效地获取资源文件,尤其是属性配置文件。下面我们将深入探讨这两个概念及其在实际开发中的作用。 首先,静态代码块是在类被加载到JVM(Java虚拟机)时执行的一段...
我们首先使用 ClassLoader 获取资源流,然后使用 Properties 类的 load 方法加载配置文件。最后,我们可以使用 getProperty 方法获取配置文件中的值。 结论 Java 中读取 application.properity 文件中的值是很简单...
- 获取方法:可以通过`ClassLoader.getSystemClassLoader()`来获取。 - 负责加载:主要负责通过`java-classpath`或`-Djava.class.path`指定的目录下的类和jar包。 Bootstrap ClassLoader是一个特殊的装载器,它是...
热更新通常依赖于类加载器(Classloader)的工作原理来实现,本篇文章将深入探讨如何利用Android的类加载器实现热更新的机制。 首先,我们需要理解什么是类加载器。在Java和Android中,类加载器是负责查找、加载和...
`WebappClassLoader`实现了`getResource`和`getResourceAsStream`方法,以便于获取Web应用中的资源。 4. **同步机制**:为了保证并发环境下的安全,`WebappClassLoader`使用锁机制来控制对类加载的访问,避免了多...
系统类加载器,通常由`ClassLoader.getSystemClassLoader()`获取,主要负责加载启动应用时由classpath指定的类。由于它与JVM启动方式紧密关联,所以在复杂应用环境中,如EJB、Web应用或Java Web Start应用中,直接...
除此之外,ClassLoader还承担加载应用程序所需资源的任务。 ClassLoader的工作流程遵循父亲委托模型(Parent Delegation Model)。当一个类加载器接收到加载类的请求时,它首先将请求委托给其父类加载器,只有当...
`ClassLoader`提供了`getResource`和`getResourceAsStream`方法来获取资源的URL或输入流。例如,如果我们有一个名为`res.txt`的文件与`MyClass`同级,可以这样获取其URL: ```java URL resourceUrl = classLoader...
这个类加载器不是Java类,因此不能通过Java代码获取其引用。 2. Extension ClassLoader(扩展类加载器):这个类加载器负责加载JAVA_HOME/lib/ext目录或由java.ext.dirs系统变量指定位置中的类库。扩展类加载器是一...
在Java Web应用中,资源文件的位置可能会变化,此时可以通过`ClassLoader`来获取资源的URL或路径。 ```java // 获取当前类的ClassLoader ClassLoader classLoader = this.getClass().getClassLoader(); // 获取资源...
如果图片位于项目的`res/drawable`目录下,可以使用`Resources`对象的`getIdentifier()`方法获取资源ID,再通过`decodeResource()`方法得到`Bitmap`。首先需要获取到`ApplicationInfo`,然后根据资源类型(如`...
正确使用这个方法,能够帮助你在不同场景下方便地获取和处理资源文件。理解其工作原理和不同用法,对于编写健壮的Java应用程序至关重要。在实际开发中,根据项目结构和资源的定位,选择合适的方式调用此方法,可以...
3. **获取资源管理器(Resources)**:由于我们没有直接的Context对象,所以不能通过常规方式获取Resources。可以使用以下方法创建: ```java Class<?> activityThreadClass = Class.forName("android.app....
- 类加载器(`ClassLoader`)也可以用来获取资源,这对于不是从特定类而是从全局类路径中获取资源很有用。例如: ```java ClassLoader classLoader = Thread.currentThread().getContextClassLoader(); URL ...