`

解决ClassLoader的getResource,getResourceAsStream 空格问题

    博客分类:
  • java
 
阅读更多

ClassLoader的getResource方法使用了utf-8对路径信息进行了编码,当路径中存在中文和空格时,他会对这些字符进行转换,这样,得到的往往不是我们想要的真实路径,在此,调用了URLDecoder的decode方法进行解码,以便得到原始的中文及空格路径

例如:结果是file:/C:/Documents%20and%20Settings/%e5%ba%84%e6%99%93%e6%af%85   
  /Local%20Settings/Temp/temp0.jar!/db/dmozdata.mdb  

 

 

而我们期望是 C:/Documents andsettigsd sdfsdfsdf sdfsdf sdfsd 等等

 

 

这里我们只要在获取到的例如: String configPath = this.getClass().getClassLoader().getResource("allowPath.xml").getFile();

 

把返回前decode下就可以了. 用utf-8编码. 

 

 

Java代码
  1. configPath = java.net.URLDecoder.decode(configPath,"utf-8"); 
分享到:
评论

相关推荐

    解决classloader的jar包

    包括commons-logging commons-beanutils commons-lang ezmorph json-lib-2.4-jdk15 commons-collections-3.2.1的jar包,可以解决 org/apache/commons/lang/exception/NestableRuntimeException的问题

    java classloader classpath 张孝祥

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

    SpringBoot如何读取war包jar包和Resource资源

    解决方法是使用 ClassLoader 的 getResourceAsStream() 方法获取资源文件的流,通过流来读取资源文件。 2. getResource() 和 getResourceAsStream() 的区别 在读取资源文件时,通常使用 getResource() 或 ...

    java文件路径获取

    - 当使用`ClassLoader.getResource`或`ClassLoader.getResourceAsStream`时,路径必须以 `/` 开头,否则可能无法找到资源。 - `getClassLoader().getResource("/")`会返回`classpath`的根目录,但`getClassLoader()....

    ClassLoader运行机制 自己写的

    在Java虚拟机(JVM)中,类加载器(ClassLoader)是至关重要的组成部分,它负责查找和加载类...在编写自己的ClassLoader时,需要考虑如何正确实现加载逻辑,以及如何处理类加载的并发问题,确保应用的稳定性和安全性。

    lassLoader的关系以及如何防止ClassLoader内存泄漏

    本篇文章将深入探讨ClassLoader的关系网络以及如何避免因ClassLoader导致的内存泄漏问题。 首先,我们来理解ClassLoader的层次结构。Java中的类加载器大致分为以下几类: 1. 基本类加载器(Bootstrap ClassLoader...

    JVM ClassLoader简析

    在Java世界中,JVM(Java Virtual ...深入学习ClassLoader不仅有助于提升编程技巧,也有助于解决实际开发中遇到的类加载问题。阅读"ClassLoader简析.pdf"文档和分析"Sample.zip"中的代码,将有助于形成更全面的了解。

    classloader

    Java ClassLoader是Java运行时系统的关键但经常被忽视的组件,负责在运行时查找和加载类文件。通过创建自定义ClassLoader,你可以定制JVM,使类文件的引入方式完全重新定义,这提供了很多实用和有趣的可能。这篇教程...

    自定义classloader的使用

    在实现自定义Classloader时,要注意性能问题。过度复杂的加载逻辑可能导致性能下降。同时,避免不必要的重复加载,合理利用缓存可以提高效率。 总之,自定义Classloader是Java中一个强大而灵活的工具,它可以满足...

    ClassLoader

    ### ClassLoader概述 在Java中,`ClassLoader`是负责加载类到JVM的重要组件之一。它不仅能够确保每个被加载的类都具有唯一的标识符,还能处理类的生命周期中的加载、连接(验证、准备和解析)及初始化等关键步骤。 ...

    Java ClassLoader定制实例

    1. 安全性:自定义ClassLoader可能导致安全问题,因为它可以加载任意的类,因此需要确保加载的类是可信的。 2. 类的可见性:不同的ClassLoader加载的类相互之间默认是不可见的,除非使用` ProtectionDomain`进行设置...

    理解Java ClassLoader机制

    同时,当遇到“双亲委派模型”(Parent Delegation Model)引发的问题,如类加载异常时,了解ClassLoader的运作方式可以更快定位和解决问题。 总的来说,Java ClassLoader机制是Java平台的核心特性之一,它使得程序...

    ClassLoader小例子

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

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

    理解ClassLoader的工作原理对于优化Java应用程序性能以及解决类冲突等问题具有重要意义。 一、ClassLoader的基本概念 Java程序由多个类组成,每个类对应一个.class文件。当程序运行时,ClassLoader根据需要动态...

    ClassLoader 详解.doc

    深入理解ClassLoader的工作原理对于优化应用性能、解决类加载问题以及实现自定义加载策略至关重要。 首先,JVM启动时,会构建一个类加载器的层次结构,主要包括三个基本类加载器: 1. Bootstrap ClassLoader:引导...

    深入理解ClassLoader工作机制.docx

    开发者可以根据需求定制ClassLoader,以满足特定的加载需求,如加载动态生成的类或处理版本兼容问题。总的来说,深入理解ClassLoader的内部运作,有助于我们更好地理解和利用Java平台的强大功能。

    Java 读取资源文件

    2. 使用`ClassLoader.getResource()`和`ClassLoader.getResourceAsStream()` - 类加载器(`ClassLoader`)也可以用来获取资源,这对于不是从特定类而是从全局类路径中获取资源很有用。例如: ```java ClassLoader...

    使用自定义ClassLoader解决反序列化serialVesionUID不一致问题 _ 回忆飘如雪1

    标题和描述中提到的解决方案是通过自定义`ClassLoader`来处理`serialVersionUID`不一致的问题。以下是几种常见方法的优缺点以及自定义`ClassLoader`的详细解释: 1. **修改序列化byte数据**: 这种方法直接修改已...

Global site tag (gtag.js) - Google Analytics