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 的一部分或已作为扩展安装。