JRE、JDK 和 JVM 的区别
在StackOverflow(原网页链接)上看到了一个很好理解的解释:
JRE 全称是 Java Runtime Environment (直译就是:Java 运行环境)。
可以简单的理解为 JRE 中包含了 JVM、一些基本的类库、 一些 java 命令 和 一些 基础组件 等。 为 java 代码的运行提供了基础的环境。
JDK 全称为 Java Development Kit (直译就是:Java 开发工具包)。
JDK 可以满足基础 Java 开发的全部需求。JDK 中包含 JRE 中的所有内容。另外还包含 javac、javadoc、jdb 等。
一般情况下,如果只是想要运行Java代码的话,只需要JRE 就可以了。 但如果开发Java 的话就必须有 JDK。因为 javac
是java 用来编译 代码文件(*.java
)编译器。例如:
在获取 .class
文件之后,要通过 JVM 运行它:java hello
。
JVM 全称为 Java Virtual Machine (直译就是:Java虚拟机)
JVM 模拟计算机的全部属性,如堆、栈、寄存器等。使得 Java 代码可以实现与计算机的物理隔绝,从而达到开平台的目的。因为.java
文件只需要面对的是 JVM,编译成为 JVM 可识别的 .class
文件,JVM 会根据相对的系统,把 .class
文件中的字节码转化成为不同平台可识别的机器码,用以在不同平台上运行。