黑马程序员技术交流社区

标题: src小疑问 [打印本页]

作者: 杨银川    时间: 2011-12-27 00:12
标题: src小疑问
本帖最后由 杨银川 于 2011-12-30 13:11 编辑

今天用Myeclipse写程序,把properties文件放入到src里,结果报出找不到系统文件。
后来把它放到工程里就没事了,哪位大哥给解释解释啊,为什么放在src里不行呢?谢谢
作者: blackbansy    时间: 2011-12-27 03:10
这是一个路径问题。
通用的相对路径解决办法
面对这个问题,我决定编写一个助手类ClassLoaderUtil,提供一个便利方法。在Web应用程序等一切Java程序中,需要定位classpath外的资源时,都使用这个助手类的便利方法,而不使用Web应用程序特有的ServletContext.getRealPath("/")方法来定位资源。
  
利用classpath的绝对路径,定位所有资源
这个便利方法的实现原理,就是“利用classpath的绝对路径,定位所有资源”。
ClassLoader类的getResource("")方法能够得到当前classpath的绝对路径,这是所有Java程序都拥有的能力,具有最大的适应性!
而目前的JDK提供的ClassLoader类的getResource(String 相对路径)方法,只能接受一般的相对路径。这样,使用ClassLoader类的getResource(String 相对路径)方法就只能定位到classpath下的资源。
如果,它能够接受“../”这样的参数,允许我们用相对路径来定位classpath外面的资源,那么我们就可以定位位置的资源!
当然,我无法修改ClassLoader类的这个方法,于是,我编写了一个助手类ClassLoaderUtil类,提供了这个方法。它能够接受带有“../”符号的相对路径,实现了自由寻找资源的功能。


作者: 曾运    时间: 2011-12-27 08:35
本帖最后由 曾运 于 2011-12-27 08:37 编辑

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




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2