Path and ClassPath
https://docs.oracle.com/javase/tutorial/essential/environment/paths.html
以下内容基于java8, 一些地方与后面的版本不一致。
本文介绍PATH和CLASSPATH环境变量。
jdk安装目录中,bin文件夹下包含compiler和launcher。
PATH略过。
CLASSPATH用来告诉应用和JDK工具,用户的class在什么地方。
使用-cp可以单独设置CLASSPATH
CLASSPATH默认值为"."
CLASSPATH可以指定多个,使用:分割
CLASSPATH只能是目录,归档(.zip or JAR file)或者*通配符
Java Launcher如何查找类
Java launcher java 启动JVM。JVM搜索和加载类的顺序如下:
- Bootstrap classes: 构成Java平台的类,包括rt.jar以及其他几个jar的类
- Extension classes:使用Java Extension机制的类,在jre/lib/ext文件夹下的.jar文件中,该机制从java9开始被废弃。
- User classes: 用户和第三方定义的类。通过CLASSPATH找到
Bootstrap classes指实现了Java 2 Platform的类。
bootstrap class path存在sun.boot.class.path的system property里面。-Xbootclasspath可以指定新的bootstrap class path。
实现了Java 2 SDK tools的类不属于Bootstrap classes。tool class被放在/lib/tools.jar中。开发工具在调用launcher的时候会把tool class的路径添加到user class path。
Extension classes通过Java Extension Framework加载。
java launcher会把user class path string放进java.class.path这个system property中。
一个JAR文件通常包含“manifest”,这个文件罗列了这个JAR包含的内容。mainifest可以定义JAR-class-path
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!