JAVA虚拟机规范(虚拟机规范链接百度传送门)并没有规定从何处寻找类,所以不同虚拟机实现方法可以不同。Oracle的虚拟机是根据类路径来搜索类。按照搜索的先后顺序,可以分为:
- 启动类路径(bootstrap classpath)
- 扩展类路径(extension classpath)
- 用户类路径(user classpath)
启动类路径默认在jre\lib目录下, java标准库(大部分在rt.jar里)位于该路径。
扩展类路径对应jre\lib\ext目录,使用java扩展机制的类位于这个路径。
我们自己实现的类,以及第三方类库则位于用户类路径。用户类路径的默认值是当前目录,也就是“.”。可是设置CLASSPATH来修改用户类路径,但是这样做不灵活(麻烦)(具体方法:高级系统设置—》环境变量…)也可以用命令行命令-classpath-cp来设置,手写虚拟机也要达到这个目的,其命令格式可如下所示: