关于JVM中的-classpath初始化

时间:2012-07-16 17:41:38

标签: java

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

我很好奇JVM是如何精确处理类路径的。

感谢。

1 个答案:

答案 0 :(得分:2)

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