项目里用到了classpath路径来引用文件,那么classpath指的是哪里呢html
我首先把上面的applicationContext.xml文件放在了src目录下发现能够。java
那么classpath究竟是哪里呢,在网上看了几篇博客web
画黄线部分解释了我放在src目录下能用classpath:访问的问题。app
可是红线部分,他说这句话对,我感受有问题。ui
而后我就试了一下spa
发现不管是放在WEB-INF目录下,仍是WEB-INF/lib下都不行。WEB-INF/classes文件尚未。。。。。xml
而后去项目WorkeSpaces 下看 bulib/ classes (这里是classpath路径 )里 发现applicationContext.xml并不在里htm
点开编译后的项目下的.classpath文件发现,有四种类型的kindblog
.classpath内容解释博客
.classpath是描述了工程的依赖文件:
整体上说这个文件就是配置整个工程的运行环境。
咱们能够看到kind为src的只有"src"并么有包含web-inf 文件夹
而后我看到一篇博客解决classpath路径的问题http://blog.sina.com.cn/s/blog_792701cd0101hpbr.html
而后我照着在.classpath添加了一行
运行成功!
去workespaces /项目名/build/classes/ 下发现
哎!applicationContext.xml进来了
由此能够总结:
一、在编译生成的文件.classpath 中kind="src" 的类型为classpath 路径,在项目里能够用classpath:xxx方式引用。也能够手动过来本身添加、扩大classpath的范围, <classpathentry kind="src" path="XXX"/>.
也就是说你想知道classpath指的是哪里点开.classpath 看看kind="src" 的就知道了
二、在编译生成的项目下的bulid/classes/ 下具备的文件都是classpath 路径下的文件,均可以经过classpath:方法获取。
三、”src不是classpath, WEB-INF/classes,lib才是classpath”这句话不对,这是编写项目时看到的,真正的classpath是在编译后的bulid/classes/ (如2的解释)