首页>JAVA>正文

JDK和JRE的区别,为什么Java程序能实现跨平台?

时间:2018-09-17 09:50:47   来源:上海尚学堂   阅读:

一、JDK和JRE的区别

要想了解JDK和JRE的区别,先要知道JVM。JVM(Java Virtual Machine,Java虚拟机)是实现Java跨平台的核心,负责解释执行class文件。

JRE(Java Runtime Environment,Java运行环境)是运行Java程序所必须的环境的集合,包括JVM标准实现以及Java核心类库。在编写Java程序的时候,经常会用到系统的类库,JVM在解释执行class文件的时候,也会用到这些类库。在Java的安装目录下,通常会有bin目录和lib目录(在配置环境变量的时候,也需要把bin目录配置到path中,lib目录配置到 classpath中),这里的lib目录下就存放了编写代码或运行代码时需要用到的类库。可以认为bin目录就是JVM,而JVM+lib=JRE。

JDK(Java Development Kit,Java开发工具包)是整个Java的核心,包括Java运行环境(Java Runtime Environment)、许多开发与调试Java工具(包括Javac、java、appletviewer、javadoc、jdb、javah、javap等)和Java基础的类库(即Java API,包括rt.jar)。也就是说,JDK=JRE+Java开发工具。
 


二、Java程序运行的环境次序,Java为什么能实现跨平台

Java程序被编译后,并不是生成能在硬件平台上可执行的代码,而是生成了一个中间代码。不同的硬件平台上会安装有不同的JVM,由JVM来负责把中间代码翻译成硬件平台能执行的代码。由此可以看出,JVM不具有平台独立性,与硬件是相关的。Java程序能实现跨平台,就是因为Java程序在运行时使用了JVM。

Java程序的下一层环境为JVM,而JVM是运行在操作系统上的,操作系统又运行在硬件上,所以,一个Java程序运行从上至下的环境次序应该是Java程序、JRE/JVM、操作系统和硬件。


关于JVM类初始化和类加载器的相关阅读:《【上海Java培训】Java虚拟机中类加载及验证》、《【上海Java培训】Java虚拟机类初始化和类加载器 

上海尚学堂Java培训技术干货,想获取Java培训学习资料视频请联系客服小姐姐。
分享:0

电话咨询

客服热线服务时间

周一至周五 9:00-21:00

周六至周日 9:00-18:00

咨询电话

021-67690939
15201841284

微信扫一扫