src 目录就是 classpath 。这个说法对不对?
1. 什么叫 Classpath?
Classpath 就是『字面含义』!指的就是放项目的 .class 文件的文件夹 ( 位置 ) 。
Java 项目的 Classpath
对于 java 项目,.class 文件在项目编译后出现的 bin 目录下。
这个目录下的内容是:
与包名一致的目录层次结构.class 文件1. Java 项目
2. │── ...
3. └── bin
4. └── com
5. └── woniu
6. └── App.class
Java Web 项目的 Classpath
对于 java-web 项目,.class 文件在项目编译后出现的 build/classes 下。
这个目录下的内容是:
与包名一致的目录层次结构.class 文件1. Java Web 项目
2. │── ...
3. └── build
4. └── classes
5. └── com
6. └── woniu
7. └── App.class
这两个文件夹 ( 的位置 ) 才是名副其实的 Classpath 。
『src 目录就是 Classpath』不对
原因很简单,src 目录下根本就没有 .class 文件!
一个根本就没有 .class 文件的文件夹 根本不可能 / 没有资格 是 Classpath 。
『src 目录就是 Classpath』有一定道理
在编译项目时,编译器 (或开发工具) 是对 src 下的内容进行编译,而后再将编译的结果『搬
运』到 Classpath 下。
那么也即是说,src 和 Classpath 是有对应关系的!
src 下的目录结构 (即包结构) 与 Classpath 下的目录结构 (即包结构) 是一样的。src 下出现的 .java 文件,在 Classpath 下就是对应的 .class 文件。src 下出现的配置文件 (.xml 和 .properties) 会被『搬运』到 Classpath 下的同样位置。因为 src 和 Classpath 的对应关系,所以,说 src 就是 Classpath (从最终的效果上看) 勉强也
算对
2. 有对应关系的文件夹可以不止一个
src 和 Classpath 的对应关系并非唯一。你可以去设置更多的文件夹与 Classpath 的对应关
系。
未来编译器在编译项目时,会将这 N 个配置文件的内容编译并『搬运』到 Classpath 中。