JDK、JRE、JVM之间的关系

JDK是Java的开发环境,用JDK开发了JAVA程序后,通过JDK中的编译程序(javac)将java文件编译成字节码文件,作为运行环境的JRE,字节码文件在JRE上运行,作为虚拟机的JVM解析这些字节码,映射到操作系统。

JDK包含了java工具(javac.exe、jar.exe等)、java运行环境JRE,Java基础类库(Java API等)一次编译 到处运行!

JRE作为运行环境,包含了JVM和Java核心类库

JVM作为虚拟机,实现跨平台,能够运行Java ,专门用来执行Java字节码文件的。JVM在执行字节码文件时,需要把字节码文件转成机器指令,不同的操作系统的机器指令是不一样的,所以就导致不同操作系统上的JVM是不一样的,所以在安装JDK的时候需要选择操作系统安装。不管什么语言 最后只要能编译成Java字节码文件,都可以在JVM上运行。

比如:我在windows开发了一个Java程序,编译打包后,生成jar包,我上传到CentOS服务器,只要在服务器上安装个JRE(Linux版本的)就可以直接运行我这个jar包了。

相关推荐
lsx2024061 天前
HTML 字符集
开发语言
很㗊1 天前
C与C++---类型转换
c语言·开发语言
say_fall1 天前
精通C语言(3. 自定义类型:联合体和枚举)
c语言·开发语言
郝学胜-神的一滴1 天前
Effective Python 第43条:自定义容器类型为什么应该从 `collections.abc` 继承?
开发语言·python
jndingxin1 天前
c++多线程(6)------ 条件变量
开发语言·c++
共享家95271 天前
QT-常用控件(二)
开发语言·qt
皮皮林5511 天前
订单分库分表后,商家如何高效的查询?
java
ytttr8731 天前
混合动力汽车MATLAB建模实现方案
开发语言·matlab·汽车
Roye_ack1 天前
【项目实战 Day12】springboot + vue 苍穹外卖系统(Apache POI + 工作台模块 + Excel表格导出 完结)
java·spring boot·后端·excel·苍穹外卖
jerryinwuhan1 天前
最短路径问题总结
开发语言·人工智能·python