《Java项目中classpath路径详解》

Posted andy-alone

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《Java项目中classpath路径详解》相关的知识,希望对你有一定的参考价值。

项目里用到了classpath路径来引用文件,那么classpath指的是哪里呢

技术分享图片

我首先把上面的applicationContext.xml文件放在了src目录下发现可以。

技术分享图片

那么classpath到底是哪里呢,在网上看了几篇博客

技术分享图片

画黄线部分解释了我放在src目录下能用classpath:访问的问题。

但是红线部分,他说这句话对,我感觉有问题。

然后我就试了一下

发现无论是放在WEB-INF目录下,还是WEB-INF/lib下都不行。WEB-INF/classes文件还没有。。。。。

技术分享图片 

技术分享图片

 

然后去项目WorkeSpaces 下看 bulib/ classes (这里是classpath路径 )里 发现applicationContext.xml并不在里

技术分享图片

点开编译后的项目下的.classpath文件发现,有四种类型的kind

技术分享图片

技术分享图片

技术分享图片

.classpath内容解释

.classpath是描述了工程的依赖文件:

  1. 源文件的具体位置(kind="src")
  2. 运行的系统环境(kind="con")
  3. 工程的library的具体位置信息(kind="lib")
  4. 在每个lib的xml子节点中,有关于它的其它配置信息(例如我配置的那个"javadoc_location")
  5. 项目的输出目录(kind="output")

总体上说这个文件就是配置整个工程的运行环境。

我们可以看到kind为src的只有"src"并么有包含web-inf 文件夹

然后我看到一篇博客解决classpath路径的问题http://blog.sina.com.cn/s/blog_792701cd0101hpbr.html 

技术分享图片

然后我照着在.classpath添加了一行

技术分享图片

运行成功!

技术分享图片

去workespaces /项目名/build/classes/ 下发现

哎!applicationContext.xml进来了

技术分享图片

 

由此可以总结:

1、在编译生成的文件.classpath 中kind="src" 的类型为classpath 路径,在项目里可以用classpath:xxx方式引用。也可以手动过来自己添加、扩大classpath的范围,  <classpathentry kind="src" path="XXX"/>.

也就是说你想知道classpath指的是哪里点开.classpath 看看kind="src" 的就知道了

2、在编译生成的项目下的bulid/classes/ 下具有的文件都是classpath 路径下的文件,都可以通过classpath:方法获取。

3、”src不是classpath, WEB-INF/classes,lib才是classpath”这句话不对,这是编写项目时看到的,真正的classpath是在编译后的bulid/classes/ (如2的解释)

以上是关于《Java项目中classpath路径详解》的主要内容,如果未能解决你的问题,请参考以下文章

eclipse项目中.classpath文件详解

eclipse项目中.classpath文件详解

ClassPath详解

详解path和classpath的区别

java classpath作用

SpringBoot中classpath和classpath*