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

简介: web项目发布到Tomcat之后,如果tomcat是安装在比如 C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\**** 那么你获取当前类的路径的时候,就会出现问题,因为它会报出%20 C:\Program%20Files\Apache%20Software%20Foundation\Tomcat 6.

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());                }            }        }    }}


目录
相关文章
|
12月前
|
Java 应用服务中间件
idea tomcat 404 无法自动打开本地项目war包路径
idea tomcat 404 无法自动打开本地项目war包路径
105 0
|
存储 Java 应用服务中间件
SpringBoot 存储图片 tomcat服务器存图片 数据库图片路径
SpringBoot 存储图片 tomcat服务器存图片 数据库图片路径
707 0
SpringBoot 存储图片 tomcat服务器存图片 数据库图片路径
|
6月前
|
自然语言处理 Java 应用服务中间件
从零手写实现 tomcat-09-servlet 处理类
该文是一个关于手写实现 Apache Tomcat 简化版的系列教程摘要。作者希望通过亲自实现一个简单的 Tomcat,来深入理解其工作原理。系列教程包括了从入门介绍到解析处理 WAR 包、与 SpringBoot 集成等多个步骤。文章介绍了 Servlet 的概念,将其比作餐厅服务员,负责处理网络请求和响应。文中还详细阐述了 Servlet 的处理流程,并通过实例解释了如何实现一个基础的 Servlet。最后,提到了如何根据请求 URL 进行调度和处理,并给出了迷你版 Tomcat(Mini-Cat)的开源地址。
|
3月前
|
Java 应用服务中间件 Apache
使用IDEA修改Web项目访问路径,以及解决Apache Tomcat控制台中文乱码问题
本文介绍了在IntelliJ IDEA中修改Web项目访问路径的步骤,包括修改项目、模块、Artifacts的配置,编辑Tomcat服务器设置,以及解决Apache Tomcat控制台中文乱码问题的方法。
175 0
使用IDEA修改Web项目访问路径,以及解决Apache Tomcat控制台中文乱码问题
|
4月前
|
应用服务中间件
修改Tomcat路径不变怎么办,点击clear清空,重新运行
修改Tomcat路径不变怎么办,点击clear清空,重新运行
|
4月前
|
算法 Java 应用服务中间件
开发与运维机制问题之在Tomcat的类加载机制中,如果BootstrapClassLoader没有加载成功类,Tomca如何解决
开发与运维机制问题之在Tomcat的类加载机制中,如果BootstrapClassLoader没有加载成功类,Tomca如何解决
22 0
|
4月前
|
应用服务中间件
前后端数据交互之axios的路径怎样找?axios的路径是那个,是你打开Tomcat之后,出现的路径+你项目写的接口路径
前后端数据交互之axios的路径怎样找?axios的路径是那个,是你打开Tomcat之后,出现的路径+你项目写的接口路径
|
6月前
|
应用服务中间件
解决方案:IDEA控制台输出Tomcat中文乱码
解决方案:IDEA控制台输出Tomcat中文乱码
140 0
解决方案:IDEA控制台输出Tomcat中文乱码
|
6月前
|
Java 应用服务中间件 Linux
tomcat启动时黑窗口一闪而过的问题及解决方案
tomcat启动时黑窗口一闪而过的问题及解决方案
175 0
|
11月前
|
应用服务中间件 开发工具 Android开发
Tomcat配置虚拟路径,使上传文件与服务器分离
Tomcat配置虚拟路径,使上传文件与服务器分离
104 0