A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 杨银川 黑马帝   /  2011-12-27 00:12  /  1418 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 杨银川 于 2011-12-30 13:11 编辑

今天用Myeclipse写程序,把properties文件放入到src里,结果报出找不到系统文件。
后来把它放到工程里就没事了,哪位大哥给解释解释啊,为什么放在src里不行呢?谢谢

2 个回复

倒序浏览
这是一个路径问题。
通用的相对路径解决办法
面对这个问题,我决定编写一个助手类ClassLoaderUtil,提供一个便利方法。在Web应用程序等一切Java程序中,需要定位classpath外的资源时,都使用这个助手类的便利方法,而不使用Web应用程序特有的ServletContext.getRealPath("/")方法来定位资源。
  
利用classpath的绝对路径,定位所有资源
这个便利方法的实现原理,就是“利用classpath的绝对路径,定位所有资源”。
ClassLoader类的getResource("")方法能够得到当前classpath的绝对路径,这是所有Java程序都拥有的能力,具有最大的适应性!
而目前的JDK提供的ClassLoader类的getResource(String 相对路径)方法,只能接受一般的相对路径。这样,使用ClassLoader类的getResource(String 相对路径)方法就只能定位到classpath下的资源。
如果,它能够接受“../”这样的参数,允许我们用相对路径来定位classpath外面的资源,那么我们就可以定位位置的资源!
当然,我无法修改ClassLoader类的这个方法,于是,我编写了一个助手类ClassLoaderUtil类,提供了这个方法。它能够接受带有“../”符号的相对路径,实现了自由寻找资源的功能。

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
曾运 黑马帝 2011-12-27 08:35:10
藤椅
本帖最后由 曾运 于 2011-12-27 08:37 编辑

找不到 是路径的问题。
在src文件夹下放的是程序的源代码,在源代码中你通过new File("xxx.properties")创建的文件并不是在src文件夹下的,
你可以找到你的工程的src文件的绝对路径(假如是“d:\myproject\src”) 再 new File("d:/myproject/src/xxx.properties")
这样properties文件放在 src文件夹下就不会报错说找不到。

评分

参与人数 1技术分 +1 收起 理由
杨强 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马