zoukankan      html  css  js  c++  java
  • 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());                }            }        }    }}


  • 相关阅读:
    Java实现 LeetCode 56 合并区间
    JQuery实现对html结点的操作(创建,添加,删除)
    JQuery实现对html结点的操作(创建,添加,删除)
    JQuery实现对html结点的操作(创建,添加,删除)
    Java实现 LeetCode 55 跳跃游戏
    Java实现 LeetCode 55 跳跃游戏
    Java实现 LeetCode 55 跳跃游戏
    Java实现 LeetCode 54 螺旋矩阵
    Java实现 LeetCode 54 螺旋矩阵
    Java实现 LeetCode 54 螺旋矩阵
  • 原文地址:https://www.cnblogs.com/ae6623/p/4416584.html
Copyright © 2011-2022 走看看