$ 类路径ClassPath
$ ClassPath
$ 设置方式
sdkTool -classpath classpath1:classpath2 ...
setenv CLASSPATH classpath1:classpath2 ...
每个类路径应以文件名或目录结尾:
- 以.jar或者.zip结尾的文件
- 包含未命名包中类文件的目录
- 包含命名包中类文件的根包所在目录
- 包含通配符*的路径(如mydir/*会被扩展成mydir目录下所有的jar文件,包括隐藏文件;但不会包括子目录)
- 多个classpath之间用:分隔
$ 类加载机制
jvm会按照bootstrap类->扩展类->用户classpath的顺序加载类,用户类按照如下顺序加载:
- .当前目录
- CLASSPATH环境变量
- -classpath命令行工具的参数
- -jar选项
后面的方式会覆盖前面的方式。
$ 获取方式
在程序中可以通过系统属性java.class.path获取
$ 参考
https://docs.oracle.com/javase/8/docs/technotes/tools/findingclasses.html
https://docs.oracle.com/javase/8/docs/technotes/tools//unix/classpath.html