- JVM: Java Virtual Machine,Java虚拟机
引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。Java语言使用Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需要生成在Java虚拟机上运行目标代码(字节码),就可以在多种平台上不加修改的运行。
JVM是一个”桥梁“,是一个”中间件“,是实现跨平台的关键,Java代码首先被编译成字节码文件,再由JVM将字节码文件翻译成机器语言,从而达到运行Java程序的目的。
注意:编译的结果不是生成机器码,而是生成字节码,字节码不能直接运行,必须通过JVM翻译成机器码才能运行。不同平台下编译生成的字节码是一样的,但是由JVM翻译成的机器码却不一样。
所以,运行Java程序必须有JVM的支持,因为编译的结果不是机器码,必须要经过JVM的再次翻译才能执行。即使你将Java程序打包成可执行文件(例如 .exe),仍然需要JVM的支持。
注意:跨平台的是Java程序,不是JVM。JVM是用C/C++开发的,是编译后的机器码,不能跨平台,不同平台下需要安装不同版本的JVM。
- JRE: Java Runtime Environment,java程序的运行时环境,包含【JVM】和运行时所需要的【运行类库】
- JDK: Java Development Kit ,是java程序开发工具包,包含【JRE】和【开发人员使用的工具】
Java运行环境简述,JVM,JRE,JDK关系
原文:https://www.cnblogs.com/Arrogance/p/14544645.html