缺省值“.”意味着用户类文件是当前目录中的所有类文件(如果是在包中,则为当前目录下的)。
CLASSPATH 环境变量的值,它覆盖缺省值。
命令行选项 -cp 或 -classpath 的值,它覆盖缺省值和 CLASSPATH 值。
-jar 选项指定的 JAR 归档,它覆盖所有其它值。如果使用该选项,则所有用户类都来自指定的归档。
Java 启动器如何查找 JAR-CLASS-PATH 类
JAR 文件通常包含一个“清单” - 该文件列出 JAR 的内容。清单可以定义 JAR-CLASS-PATH ,而后者进一步扩展类路径(仅当从该 JAR 中加载类时)。查找 JAR-CLASS-PATH 访问的类时将按以下顺序进行:
通常,查找 JAR-CLASS-PATH 项引用的类时,即将其当作 JAR 文件的一部分。出现在 JAR-class-path 中的 JAR 文件将在 JAR-CLASS-PATH 前面的类路径项之后及 JAR-CLASS-PATH 后面的类路径项之前进行搜索。
然而,如果 JAR-CLASS-PATH 指向一个已搜索过的 JAR 文件(例如扩展或在类路径前面列出的 JAR 文件),则不再搜索该 JAR 文件(这种优化方式提高了效率,防止了循环搜索)。这样的 JAR 文件将在它出现的地方(类路径中更靠前的地方)进行搜索。
如果 JAR 文件作为扩展安装在 jdk 的 ext 子目录中,则忽略它所定义的 JAR-CLASS-PATH。我们假定扩展所需的所有类都是 JDK 的一部分或已作为扩展安装。
延伸阅读
文章来源于领测软件测试网 https://www.ltesting.net/