Tomcat下获取当前类的路径中含有空格的解决方案

web项目发布到Tomcat之后,如果tomcat是安装在比如

C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\****

那么你获取当前类的路径的时候,就会出现问题,因为它会报出%20

C:\Program%20Files\Apache%20Software%20Foundation\Tomcat 6.0\webapps\****

这个时候你再做一些关于文件的操作,程序就挂了,报一些未知错误,那么解决方案就是使用字符串的replace方法,进行字符串替换即可.

 

//获取当前类加载器,并找到指定目录POOLCONFIG_FOLDER是之前设置好的static 变量

String path = Thread.currentThread().getContextClassLoader().getResource(POOLCONFIG_FOLDER).getPath();

//进行字符串替换

path = path.replace("%20", " ");

public class DBUtil{         private static String POOLCONFIG_FOLDER = "pools";         private static void init()    {        /**         * 方法一,利用当前类加载器1         */        // URL url = Thread.currentThread().getContextClassLoader().getResource(POOLCONFIG_FOLDER);        // String path = url.getFile();        // path = path.replace("%20", " ");        //  File folder = new File(path);                 /**         * 方法二,利用当前类加载器2         */        //String path = DBUtil.class.getClassLoader().getResource(POOLCONFIG_FOLDER).getPath();        //path = path.replace("%20", " ");        // File folder = new File(path);                          /**         * 方法三,利用当前线程类加载器         */        String path = Thread.currentThread().getContextClassLoader().getResource(POOLCONFIG_FOLDER).getPath();        path = path.replace("%20", " ");        File folder = new File(path);        logger.debug("path :" + path);        if (folder.isDirectory())        {            File[]fileList = folder.listFiles();            for (int i = 0, len = fileList.length; i < len; i++)            {                try                {                    File file = fileList[i];                    String name = file.getName();                    name = name.substring(0, name.lastIndexOf("."));                    InputStream input = new FileInputStream(file);                    Properties props = new Properties();                    props.load(input);                    loadPoolConfig(name, props);                }                catch (Exception e)                {                    e.printStackTrace();                    logger.info("加载DBUtil出现问题。。。。。");                    logger.error(e.getMessage());                }            }        }    }}

时间: 2024-10-08 00:10:42

Tomcat下获取当前类的路径中含有空格的解决方案的相关文章

java路径中的空格问题(转)

java路径中的空格问题 1. URLTest.class.getResource("/").getPath(); URLTest.class.getResource("/").getFile(); URLTest.class.getClassLoader().getResource("").getPath(); Thread.currentThread().getContextClassLoader().getResource("&q

jQuery选择器中含有空格和特殊符号的注意事项

文章简介:使用jQuery选择器应注意的问题. 一.选择器中含有特殊符号的注意事项 1.选择器中含有"."."#"."("或"]"等特殊字符根据W3C的规定,属性值中是不能含有这些特殊字符的,但在实际项目中偶尔会遇到表达式中含有"#"和"."等特殊字符,如果按照普通的方式去处理出来的话就会出错.解决此类错误的方法是使用转义符转义. <div id="id#b"&

java获取当前类的路径

1.如何获得当前文件路径常用:(1).Test.class.getResource("")得到的是当前类FileTest.class文件的URI目录.不包括自己!(2).Test.class.getResource("/")得到的是当前的classpath的绝对URI路径.(3).Thread.currentThread().getContextClassLoader().getResource("")得到的也是当前ClassPath的绝对URI

jQuery选择器中含有空格的使用示例及注意事项_jquery

此文摘自<锋利的jQuery>,另外添加了一点自己的东西 选择器中的空格是不容忽视的,多一个空格或少一个空格也许得到的结果会截然不同的.下面来看一个例子. 先构建如下的HTML代码: 复制代码 代码如下: <div class="test"> <div style="display:none;">Jquery教程</div> <div style="display:none;">Jque

解决图片路径中含有中文在jsp下不能正常显示问题

图片路径正确,放到一个单独的html页面中也能正常打开,在jsp中就是不显示图片,下面有个不错的解决方法,大家可以尝试下 如:<img src="/pic/lupload/img工行上传.jpg" />,图片路径正确,放到一个单独的html页面中也能正常打开,在jsp中就是不显示图片    原因在于没有在tomcat配置URIEncoding.修改方法:    在tomcat的server.xml中加入URIEncoding="utf-8"(网页的编码是

解决图片路径中含有中文在jsp下不能正常显示问题_JSP编程

如:<img src="/pic/lupload/img工行上传.jpg" />,图片路径正确,放到一个单独的html页面中也能正常打开,在jsp中就是不显示图片 原因在于没有在tomcat配置URIEncoding.修改方法: 在tomcat的server.xml中加入URIEncoding="utf-8"(网页的编码是utf-8) 复制代码 代码如下: <Connector port="8080" URIEncoding=&

图片路径中含有中文在jsp下不能正常显示的原因及解决_JSP编程

如:<img src="/pic/lupload/img工行上传.jpg" />,图片路径正确,放到一个单独的html页面中也能正常打开,在jsp中就是不显示图片 原因在于没有在tomcat配置URIEncoding.修改方法: 在tomcat的server.xml中加入URIEncoding="utf-8"(网页的编码是utf-8) 复制代码 代码如下: <Connector port="8080" URIEncoding=&

选择器中含有空格在使用示例及注意事项

带空格 表示的是选择class为test里面隐藏的元素:不带空格 表示的是选择隐藏的class为test的元素,在使用过程中一定需要注意下   原理解释: var $t_a=$(".test :hidden") //带空格 表示的是选择class为test里面隐藏的元素: var $t_a=$(".test:hidden")//不带空格 表示的是选择隐藏的class为test的元素: 举例说明: 复制代码 代码如下: <html> <head>

使用Visual Studio 部署SharePoint时提示“路径中具有非法字符”

在使用VS 2012部署或发布SharePoint时,提示"路径中具有非法字符"(英文提示"Illegal characters in path"),找了半天,才找到答案.   这个原因是路径中含有中文或者特殊字符导致的.比如使用Windows 8 live帐号登陆,会将中文名作为用户名,这时就会报这个错误. 解决方案: 第一,检查临时目录路径,进行修改. 更改方式如下:用鼠标右键单击"我的电脑" - >属性 - >高级系统设置 -