【JAVA】关于java中 类.class.getResource("/").getPath()获取路径有空格的问题

写了一个web工程,在本地测试正确,但是部署到服务器上就出现错误。原因是读取不到配置文件。

后来从打印出来的文件路径中发现是用Java的class.getResource("/").getPath()获取路径的时候,路径中的空格转换成了%20。

在网上查询相关信息,果然将空格转成%20是一个古老的bug,我特意借此记录一下,希望能帮到遇到同样问题的朋友。

Bug ID: 4466485 getClass( ).getResource( ).getFile( ) returns file name with %20

此 bug 于 2001年6月被提出来,2002年11月最终关闭。
没有修复的原因是这样做会导致兼容性问题。

这里给出一个解决方案:

configPath = java.net.URLDecoder.decode(configPath,"utf-8");

时间: 2024-10-10 17:52:23

【JAVA】关于java中 类.class.getResource("/").getPath()获取路径有空格的问题的相关文章

关于Class类的getResource().getPath()方法

程序中配置文件如果放置在classes文件夹,那么我们就可以使用Class类的getResource().getPath()方法获取文件路径. 例如: String path = DBUtil.class.getResource("/db.properties").getPath(); 值得注意的文件是,如果发布程序的web容器(tomcat)安装的路径中存在空格 D:\Program Files\Apache Software Foundation\Tomcat 8.5 该方法将会得

去除路径中的后缀名和获取路径目录

首先,记录一个网址,感觉很有用,大部分的文件路径相关函数,里面都有源代码. https://msdn.microsoft.com/en-us/library/windows/desktop/bb773746(v=vs.85).aspx 1.完整路径,去除后缀名   PathRemoveExtensionA [cpp] view plain copy #include <iostream>//cout函数所需 #include "atlstr.h"  //PathRemove

JAVA WEB项目中各种路径的获取

JAVA WEB项目中各种路径的获取 标签: java webpath文件路径 2014-02-14 15:04 1746人阅读 评论(0) 收藏 举报  分类: JAVA开发(41)  1.可以在servlet的init方法里 String path = getServletContext().getRealPath("/"); 这将获取web项目的全路径 例如 :E:\eclipseM9\workspace\tree\ tree是我web项目的根目录 2.你也可以随时在任意的cla

JAVA文件中获取路径及WEB应用程序获取路径方法

原文转自:http://www.tqcto.com/article/recommend/141.html 1. 基本概念的理解 `绝对路径`:你应用上的文件或目录在硬盘上真正的路径,如:URL.物理路径 例如: c:/xyz/test.txt代表了test.txt文件的绝对路径: http://www.sun.com/index.htm也代表了一个URL绝对路径: `相对路径`:相对与某个基准目录的路径,包含Web的相对路径(HTML中的相对目录). 例如: 在Servlet中,"/"

java web项目中 读取properties 路径的问题

可以先获取项目的classPath String classPath = this.getClass().getResource("/").getPath();//获取classPath(部署到tomcat的路径上) 我的为/D:/apache-tomcat-6.0.29/webapps/demo/WEB-INF/classes/  在连接下面的路径即可 代码如下: package readproperties; import java.io.BufferedInputStream;i

java的文件操作类File

java.io.File类,是java获取文件/文件夹的所有属性,和完成所有相关操作的类 例子: 1 package test.file.IO; 2 3 import java.io.*; 4 public class TestFile{ 5 public static void main(String[] args){ 6 //1.File类是java用来处理文件的类,它可以获取文件的所有属性 和 完成文件所需要的所有操作 7 // 所以使用的第一步就是new一个File对象 8 // Fil

在Java中兼容Windows和Linux的路径处理

Linux中的路径使用'/',而Windows下正好相反'\',Java提供了以系统属性的方式获取路径分隔符: System.getProperty("file.separator");

【JAVA】java的路径问题

总结自很多文章与书籍 尤其是:http://blog.csdn.net/shendl/article/details/1427475  强烈推荐 1.在IDE中获取路径 File f = new File("config.txt"); 在IDE中如果是这样 那么 f.getAbsolutePath() 这个方法返回的绝对路径是这个项目的根目录中的config.txt文件 在Linux非IDE中,返回的值当前路径下的config.txt文件 File f = new File("

java ----获取路径的各种方法(总结)

Java Web开发中路径问题小结 (1) Web开发中路径的几个基本概念 假设在浏览器中访问了如下的页面,如图1所示: 那么针对这个站点的几个基本概念表述如下: 1. web站点的根目录:http://localhost:8080/ 2. web应用程序的的根目录:http://localhost:8080/test/ 3.同级目录:http://localhost:8080/test/articles/article1.jsp和http://localhost:8080/test/artic