`
xzcgeorge
  • 浏览: 31970 次
  • 性别: Icon_minigender_1
  • 来自: 珠海
社区版块
存档分类
最新评论

ClassLoader 定位资源in Jar file

阅读更多
可以使用类的 ClassLoader 找到它,像在 JAR 文件中寻找 “资源” 那样,使用 ClassLoader getResourceAsStream() 方法,如清单 7 所示:
package com.tedneward.jars;

import java.util.*;

public class SpeakEnglish
    implements ISpeak
{
    Properties responses = new Properties();
    // ...

    public SpeakEnglish()
    {
        try
        {
            ClassLoader myCL = SpeakEnglish.class.getClassLoader();
            responses.load(
                myCL.getResourceAsStream(
                    "com/tedneward/jars/responses.properties"));
        }
        catch (Exception x)
        {
            x.printStackTrace();
        }
    }
    
    // ...
}

您可以按照以上步骤寻找任何类型的资源:配置文件、审计文件、图形文件,等等。几乎任何文件类型都能被捆绑进 JAR 中,作为一个 InputStream 获取(通过 ClassLoader),并通过您喜欢的方式使用。


分享到:
评论

相关推荐

    定义ClassLoader调用外部jar包

    例如,`JarFile.getEntry(String name)`可以获取指定名称的条目,然后`JarInputStream`可以从条目中读取字节流。 在实际应用中,我们还需要考虑安全性、线程安全和类的版本控制等问题。自定义ClassLoader可能会引发...

    ClassLoaderTest:测试如何正确关闭类加载器,以便可以关闭基础jar文件上的文件句柄

    List<JarFile> jarFiles = (List<JarFile>) jarFilesField.get(classLoader); for (JarFile jarFile : jarFiles) { jarFile.close(); } // 如果类加载器提供了close方法,也应该调用 if (classLoader ...

    java 读取jar包文件

    如果你的文件是在运行时类路径中,你可以使用`ClassLoader`来获取输入流,这样就不需要直接处理`JarFile`了。例如: ```java InputStream in = getClass().getResourceAsStream("/path/to/target_file_name"); ...

    读取jar包中的图片,文本, 文本会写到控制台,图片会输出到F:盘中

    - 调用`JarFile`的`getEntry()`方法,传入资源的相对路径(例如,对于图片"img/test.jpg"和文本"txt/sample.txt",路径应分别为"img/test.jpg"和"txt/sample.txt")。 3. **读取资源**: - 对于文本文件,创建一...

    Jar包中如何正确地加载资源文件博文中用到的测试项目源码

    当你运行一个包含资源文件的JAR包时,JVM会根据类路径来定位这些文件。默认情况下,JAR文件被视为一个类路径元素,其内部的结构被保留,这意味着你可以通过相对路径访问到资源。 1. 使用`ClassLoader`加载资源: ...

    Java实现从jar包中读取指定文件的方法

    此外,如果你需要频繁地从JAR中读取资源,可以考虑使用`Class.getResourceAsStream()`或`ClassLoader.getResourceAsStream()`方法,它们允许你通过类路径(相对于类或类加载器)访问资源,而无需显式打开`JarFile`。...

    在jar包在查找指定的文件是否存在工具

    标题提到的“在jar包中查找指定的文件是否存在工具”是一个重要的实践场景,它涉及到Java的类加载机制和资源定位。下面将详细介绍这个知识点。 首先,Java的类加载器(ClassLoader)是负责加载类到Java虚拟机(JVM...

    java调用外部jar文件

    this.jarFile = jarFile; } @Override protected Class<?> findClass(String className) throws ClassNotFoundException { try (JarInputStream jis = new JarInputStream(new FileInputStream(jarFile))) { ...

    java classloader classpath 张孝祥

    `ClassLoader`提供了两个重要的方法用于资源定位: - `public URL getResource(String name)`:返回一个`URL`对象,表示名为`name`的资源。 - `public InputStream getResourceAsStream(String name)`:返回一个...

    ClassLoader

    - 加载内容: `<Java_Runtime_Home>/lib`下的核心类库,如`rt.jar`等。 - 特点: 开发者无法直接获取到启动类加载器的引用,因此无法直接操作。 2. **标准扩展(Extension)类加载器**: - 实现方式: `sun.misc....

    Java 动态加载jar文件示例

    JarFile jarFile = new JarFile(jarPath); JarEntry entry = jarFile.getJarEntry(className.replace('.', '/') + ".class"); if (entry == null) { throw new FileNotFoundException("Class not found in JAR: ...

    jar 包 内文件读取 文件内容

    try (JarFile jar = new JarFile("path_to_your_jar.jar")) { JarEntry entry = jar.getEntry("TestMyPath"); if (entry != null) { try (InputStream is = jar.getInputStream(entry); BufferedReader reader ...

    jar包解析工具

    可以使用Java内置的`JarFile`类来实现这一功能,也可以借助第三方工具,例如`jdgui_0.3.6`,它是一个可视化的反编译工具,能够帮助开发者查看`jar`包内的类文件源代码。 3. **加载**:在Java程序中,`ClassLoader`...

    动态加载jar包

    3. **读取jar文件**:使用`java.util.jar.JarFile`类打开jar文件,并遍历其中的条目。每个条目对应于jar内的一个文件,如类文件、资源文件等。 4. **加载类**:对于每个类文件,使用自定义类加载器的`defineClass()...

    URLClassLoader中指定目录和jar的问题

    在Java编程语言中,`URLClassLoader`是Java标准类加载器的一种实现,它负责从指定的URL(统一资源定位符)加载类和资源。本文将深入探讨`URLClassLoader`的工作原理,以及如何处理指定目录和JAR文件中的类加载问题。...

    动态加载jar包的实现

    3. 查找类的字节码:调用`JarFile`的`getInputStream(JarEntry)`方法,其中`JarEntry`是代表类的条目,通常由`JarFile`的`getJarEntry(String className)`获得。 4. 将字节码转换为`Class`对象:使用`ClassLoader`的...

    web开发常用jar包

    4.1 使用`jar`命令行工具:通过`jar cf jarfile manifest file1 file2 ...`命令,可以将指定的文件打包成`jar`。 4.2 IDE集成:大多数Java IDE(如Eclipse、IntelliJ IDEA)提供创建`jar`包的图形化界面,只需选择...

    java_jar包

    2. 导入JAR:在Java项目中,可以通过`<classpath>`元素在构建路径中添加JAR,或者使用`Class.forName()`和`ClassLoader`来动态加载JAR中的类。 开发过程中,理解并熟练使用JAR包是Java程序员的基本技能。正确地组织...

    Java 自动加载JAR文件并运行其中的类方法

    File jarFile = new File("path_to_your_jar.jar"); URL url = jarFile.toURI().toURL(); URL[] urls = new URL[]{url}; ClassLoader classLoader = new URLClassLoader(urls); ``` 3. **加载类**:使用加载的...

    读取jar文件

    ### 读取jar文件中的资源知识点 #### 一、引言 在开发过程中,经常会遇到需要从jar包中读取资源文件(如图片、音频等)的情况。这涉及到如何定位和访问这些文件的问题。本文将深入探讨如何在Java环境中有效地处理这...

Global site tag (gtag.js) - Google Analytics