快速业务通道

Java程序中的配置文件的存放和读取 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-15
ses目录中对应传入参数类所 在的包目录中寻找属性文件 在操作系统中的当前登录用户的主目录中寻找属性文 件 在系统设定的环境变量CLASSPATH所指向的各个目录中寻找属性文件

其实,guessPropFile方法还可做的更加智能一些,比如在WAR文件的WEB-INF 文件中寻找属性文件。如果要完成这个任务,ClassLoader是关键类,利用它的 getResource方法,就可以获得相应程序中的资源的位置,我们可以在它的基础上 稍加修改就可获得当前Java程序的运行位置信息,其伪代码如下:

获得Class参数的所在的类名

取得该类所在的包名

将包名转换为路径

利用getResource得到当前的类文件所在URL

利用URL解析出当前Java程序所在的路径

Java程序中的配置文件的存放和读取(4)

时间:2011-09-09

具体代码如下:

public class PropHelper{ //其他方法的定义 //............. / ** *getAppPath需要一个当前程序使用的Java类的class属性参数,它可以 返回打包过的 *Java可执行文件(jar,war)所处的系统目录名或非打包Java程 序所处的目录 *@param cls为Class类型 *@return 返回值为该类所在的 Java程序运行的目录 */ public static String getAppPath(Class cls ){ ClassLoader loader=cls.getClassLoader(); String clsName=cls.getName()+".class"; Package pack=cls.getPackage (); String path=""; if(pack!=null){ String packName=pack.getName (); clsName=clsName.substring(packName.length()+1); if (packName.indexOf(".")<0) path=packName+"/"; else{ int start=0,end=0; end=packName.indexOf("."); while(end!=-1){ path=path+packName.substring(start,end) +"/"; start=end+1; end=packName.indexOf(".",start); } path=path+packName.substring(start)+"/"; } } java.net.URL url =loader.getResource(path+clsName); String realPath=url.getPath (); int pos=realPath.indexOf("file:"); if(pos>-1) realPath=realPath.substring(pos+5); pos=realPath.indexOf (path+clsName); realPath=realPath.substring(0,pos-1); if (realPath.endsWith("!")) realPath=realPath.substring (0,realPath.lastIndexOf("/")); return realPath; }//getAppPath定义 结束 }//PropHelper类定义结束

在getAppPath方法的帮助下,我们可以测定当前程序运行的路径是不是包含 WEB-INF/classes路径信息,如果是,则当前程序就可能是运行在Web环境中,这 样,就可以对guessPropFile中的代码进行增加,加入在WEB-INF文件夹寻找属性 文件的方法。

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号