关于JVM中的类路径初始化



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

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

谢谢。

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

最新更新