画出 `JDK`、`JRE`、`JVM` 的包含关系
JDK 是开发工具包,面向编译、调试和打包;JRE 是运行环境,负责让 Java 程序执行;JVM 是运行 .class 的虚拟机核心。三者解决开发与运行边界混淆的问题,机制上是 JDK 包含 JRE,JRE 携带 JVM 与类库;误区是把安装了 JRE 等同于具备完整开发能力。
诊断题
javac 编译源码,应如何从 JDK、JRE、JVM 的关系解释原因?答案骨架
我能复述
JDK是开发侧集合,包含编译器、工具和运行环境JRE是运行侧集合,提供类库和JVMJVM只负责加载并执行.class字节码- 只装
JRE可运行但缺少javac等开发工具 - 面试中要用包含关系而不是并列关系回答。
边界追问
JRE 安装包,这是否说明 JDK、JRE、JVM 的分层关系已经失效?边界答案
jlink 裁剪运行时,不能据此否定 JRE 的概念边界。记忆锚点
JDK,运行找 JRE,执行字节码靠 JVM。衍生拓展
- 继续区分
javac编译期错误与java运行期错误。 - 了解
JAVA_HOME、PATH如何影响工具查找。 - 对比
JDK 8传统目录与新版模块化运行时布局。
落地场景
在命令行验证边界:有 java 只能运行,有 javac 才能编译。
1java -version
2javac -version
3javac Hello.java
4java Hello