JVM 在启动main方法之前,需要先启动虚拟机,然后去加载主类,调用主类的main(),但是加载主类之前还需要加载一些其他的类,所有的类都继承Object.class,所有这个类是必须要加载的,还有一些String,String[]等等.不同虚拟机加载类的方式不同,Oracle是按照类路径来搜索类的.
三种类路径
- 启动类路径(bootstrap)
默认在 jre\lib 目录下,可以在启动时通过 -Xbootclasspath 修改
- 扩展类路径(extension)
默认在 jre\lib\ext 目录下
- 用户类路径(user)
默认是当前路径("."), 可以设置CLASSPATH环境变量,也可以在启动时指定 -classpath,-classpath的优先级是要高于CLASSPATH的,-classpath
classpath 参数说明
classpath的优先级高于CLASSPATH, 既可以指定目录,也可以指定jar文件或者zip文件,指定多个用分隔符(Win:分号,Unix:冒号)隔开.
可以使用通配符指定某个目录下的所有文件,如:
java -cp lib\1\*;lib\2\*