`
lgd_java2eye
  • 浏览: 189591 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

ClassLoader加载类的路径问题

    博客分类:
  • java
阅读更多

有的时候我们需要读取文件,文件的路径若写死了,当我们上线的时候会比较麻烦,往往会经常出现找不到文件路径的问题,对于这个问题的解决方案就是用ClassLoader的类加载,来加载文件:

加载方式如下:

1:用下面的读取方式读取配置文件,Thread.currentThread().getContextClassLoader()读取的时候,默认的读取的文件的路径是项目的根目录
若该文件在项目根目录下面则直接按照这样的方式写:
private static final String CONFIG_FILE="config.properties";
InputStream inStream=Thread.currentThread().getContextClassLoader().getResourceAsStream(CONFIG_FILE);
2:若配置文件在http.com.cn的包下面,则按照下面的方式读取:
private static final String CONFIG_FILE="http/com/cn/config.properties";
InputStream inStream=Thread.currentThread().getContextClassLoader().getResourceAsStream(CONFIG_FILE);
3:若用SystemConfig.class.getResourceAsStream(CONFIG_FILE)这样的方式的话,默认的文件的路径就是SystemConfig类的路径,就是完整的包路径,
也就是要使用InputStream inStream =SystemConfig.class.getResourceAsStream("/http/com/cn/config.properties")这样的绝对路径"/"开头

用到classloader的getResourceAsStream的就要写相对路径的方式写路径,若包名以"cn"开头,则应该按照以包名"cn/"写完整的路径的方式的相对路径方式,若写“类名.class.getResourceAsStream("")"这样的方式,则必须要按照绝对路径的方式写文件的路径以"/"开头

分享到:
评论

相关推荐

    ClassLoader类加载器

    3. Application ClassLoader:也称为系统类加载器,负责加载用户类路径`-cp`或`-classpath`指定的所有类。 当一个类被加载时,如果它的父类加载器无法加载该类,那么会将任务委派给子类加载器。这就是著名的"委托...

    ClassLoader(类加载机制)1

    Bootstrap ClassLoader负责加载JDK的核心库,Extension ClassLoader加载Java的扩展库,而App ClassLoader则加载应用的类路径下的类。用户还可以自定义类加载器,用于加载特定位置或格式的类。 2. **Java类** Java...

    JAVA ClassLoader 讲解 (类加载器)

    3. **应用程序类加载器(Application ClassLoader)**:也称为系统类加载器,它负责加载用户类路径(classpath)上指定的类。 #### 四、编译类加载器 本节将详细介绍一个编译类加载器的设计与实现。编译类加载器是...

    Java ClassLoader定制实例

    接着,Extension ClassLoader加载扩展类库,然后是App ClassLoader加载应用程序的类路径下的类。每个ClassLoader都有其父ClassLoader,它们形成了一个层次结构,子ClassLoader可以委托父ClassLoader去加载类,避免了...

    classloader类加载器_基于java类的加载方式详解

    3. Application ClassLoader(应用程序类加载器):也被称为System ClassLoader(系统类加载器),它负责加载CLASSPATH环境变量所指定的路径、类路径(ClassPath)下的类库。一般情况下,它是Java应用程序中默认的类...

    JVM ClassLoader简析

    这种委托加载机制保证了类的唯一性,防止了同一个类被不同ClassLoader加载两次的问题。 ClassLoader还有自定义的概念,允许开发者创建自己的ClassLoader来实现特定的加载逻辑。例如,从网络、数据库或特定文件系统...

    探究java的ClassLoader及类变量初始化顺序

    在Java编程语言中,ClassLoader是核心组件之一,它负责加载类到JVM(Java虚拟机)中。理解ClassLoader的工作机制以及类变量初始化的顺序对于深入理解Java运行时环境至关重要。这篇博文将探讨这两个主题。 首先,让...

    S18-ClassLoader类加载流程1

    - **应用程序类加载器(Application ClassLoader)**:也称为系统类加载器,负责加载用户类路径(classpath)上的类库。 类加载器之间并非继承关系,而是通过委托关系实现。例如,AppClassLoader会委托...

    自定义classloader的使用

    通过自定义Classloader,我们可以指定额外的类路径,例如从网络、数据库或者本地文件系统的非标准位置加载类。这在处理动态更新或模块化的系统中非常有用。 四、加密与解密类文件 自定义Classloader可以用于加载...

    ClassLoader运行机制 自己写的

    在Java虚拟机(JVM)中,类加载器(ClassLoader)是至关重要的组成部分,它负责查找和加载类的字节码文件。理解ClassLoader的工作机制对于深入掌握Java应用程序的运行至关重要。这里我们将详细讨论ClassLoader的运行...

    tomcat 类加载机制 —— ClassLoader

    类加载遵循“双亲委托模型”,即当一个类加载器收到加载类的请求时,它会首先委托父类加载器尝试加载,只有当父类加载器无法找到对应的类时,才会自己尝试加载。这样保证了基础类库的一致性,同时也允许Web应用覆盖...

    ClassLoader小例子

    在Java编程语言中,ClassLoader是一个至关重要的组成部分,它负责加载类到JVM(Java虚拟机)中,使得程序能够执行。本示例"ClassLoader小例子"将深入探讨这个概念,并通过一个具体的程序来演示其工作原理。下面我们...

    定义ClassLoader调用外部jar包

    默认情况下,Java使用系统ClassLoader(Bootstrap ClassLoader)加载JDK核心库,然后是Extension ClassLoader加载扩展库,最后是App ClassLoader加载应用类路径(ClassPath)下的类。当这些默认ClassLoader无法满足...

    ClassLoader 详解.doc

    《ClassLoader详解》 Java应用程序的运行离不开类的加载,而ClassLoader正是这个过程的...通过本文档的学习,读者可以深入理解Java虚拟机加载类的过程,掌握如何自定义和优化类加载机制,从而提升应用的稳定性和效率。

    ClassLoader原理

    在Java编程语言中,ClassLoader是核心组件之一,它负责加载类到JVM(Java虚拟机)中,使得程序能够执行。ClassLoader原理的理解对于深入学习Java和进行系统优化至关重要。这篇博文将带你深入了解ClassLoader的工作...

    理解Java ClassLoader机制

    最后,App ClassLoader加载的是应用类路径(ClassPath)中的类。 ClassLoader的工作流程主要包含以下步骤: 1. **查找类**:当JVM需要加载一个类时,ClassLoader会根据类名(全限定名,如`java.lang.String`)在...

    Java类加载器(ClassLoader)1

    - 自定义加载器通常用于隔离加载类、改变加载方式、扩展加载源、防止源码泄露等场景。 - 实现自定义类加载器时,建议在JDK1.2后重写findClass()方法而非loadClass(),以避免复杂的操作。 **常用方法**: - `...

    java ClassLoader机制及其在OSGi中的应用

    3. SystemClassLoader(系统类加载器,也称为AppClassLoader):根据Java应用的类路径(CLASSPATH)加载类。大多数应用类是由SystemClassLoader加载的,可以通过`ClassLoader.getSystemClassLoader()`获取。 二、...

    ClassLoader的 一些测试

    在Java编程语言中,ClassLoader是一个至关重要的组成部分,它负责加载类到JVM(Java虚拟机)中执行。这篇测试主要探讨了ClassLoader的工作原理及其在实际应用中的使用。通过阅读给出的博文链接,我们可以深入理解...

    java应用程序类加载器,ClassLoader for java Application

    通过配置类路径,开发者可以自定义加载顺序和加载来源,例如从网络、文件系统或特定的jar中加载类。 **配置灵活性**: 在开发大型Java应用时,类加载器的配置灵活性变得非常重要。例如,可以创建自定义类加载器来...

Global site tag (gtag.js) - Google Analytics