Tomcat下獲取當前類的路徑中含有空格的解決方案
系統
1900 0
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());????????????????}????????????}????????}????}}
Tomcat下獲取當前類的路徑中含有空格的解決方案
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元