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