2

我知道当我们启动任何 java 进程时,我们使用类路径来添加第三方 jar。是否有人有关于 JVM 如何读取或 JVM 对类路径中指定的 jar 做什么的任何资源或信息?

我只是好奇 JVM 究竟是如何处理类路径的。

谢谢。

4

1 回答 1

2

类路径是线性读取的,因此当请求一个类时,Java 会在它的类路径上找到它的第一个实例。话虽如此,当您启动 Java 时,实际上存在三个类路径级别。第一个是包含 java 核心 jars(java.lang 等)的引导类路径。第二个是扩展类路径,其中包含在 java 安装的扩展 (ext) 目录中找到的任何 jar。第三个是用户指定的运行程序的类路径。这些类路径将始终按照从引导程序开始的顺序线性读取,然后是扩展,最后是用户指定的类路径。这就是阻止某人在普通程序中覆盖 java.lang 类的原因。即使类路径中稍后有另一个匹配项,找到匹配项的第一个类总是获胜。

于 2012-07-16T18:10:00.837 回答