jdk、jre与jvm的区别与联系

为了学习数据库,重装了系统,之前前一直在用eclipse,现在准备换成myeclipse,这之前当然需要重新设置环境变量,顺手写下有关jdk、jre与jvm的区别与联系以供交流参考。

首先来说一下JDK

JDK(Java Development Kit) 是 Java 语言的软件开发工具包(SDK)。

JDK是整个JAVA的核心,包括了Java运行环境(Java Runtime Envirnment),一堆Java工具(javac/java/jdb等)和Java基础的类库(即Java API )。

有以下三种版本:

SE(J2SE),standard edition,标准版,是我们通常用的一个版本,从JDK 5.0开始,改名为Java SE。

EE(J2EE),enterprise edition,企业版,使用这种JDK开发J2EE应用程序,从JDK 5.0开始,改名为Java EE。

ME(J2ME),micro edition,主要用于移动设备、嵌入式设备上的java应用程序,从JDK 5.0开始,改名为Java ME。

再来谈谈JRE

JRE为Java Runtime Environment的简称,Java Runtime Environment(包括Java Plug-in)是Sun的产品,包括两部分:Java Runtime Environment和Java Plug-in。JavaRuntimeEnvironment(JRE)是可以在其上运行、测试和传输应用程序的Java平台。它包括Java虚拟机(jvm)、Java核心类库和支持文件。它不包含开发工具(JDK)--编译器、调试器和其它工具。JRE需要辅助软件--Java
Plug-in--以便在浏览器中运行applet。

没有JDK的话,无法编译Java程序,但在有JRE环境的系统上可以运行程序。所以当你只需要运行Java程序或Applet,下载并安装JRE即可。如果你要自行开发 Java软件,请下载JDK。

最后再来了解一下JVM

JVM即Java Virtual Machine(Java虚拟机),JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。

Java语言的一个非常重要的特点就是与平台的无关性。而使用Java虚拟机是实现这一特点的关键。一般的高级语言如果要在不同的平台上运行,至少需要编译成不同的目标代码。而引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。Java语言使用Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。Java虚拟机在执行字节码时,把字节码解释成具体平台上的机器指令执行。这就是Java的能够“一次编译,到处运行”的原因。

这是三者的关系图:

我们开发的实际情况是:我们利用JDK(调用JAVA API)开发了属于我们自己的JAVA程序后,通过JDK中的编译程序(javac)将我们的文本java文件编译成JAVA字节码,在JRE上运行这些JAVA字节码,JVM解析这些字节码,映射到CPU指令集或OS的系统调用。

本文内容参考:http://java-mzd.iteye.com/blog/838514

时间: 2024-10-12 12:34:02

jdk、jre与jvm的区别与联系的相关文章

Java学习2 - JDK和JRE和JVM的区别_JDK的下载安装_环境变量配置

一 JDK和JRE和JVM的区别 Jdk: Java Development kit - Java 开发工具 JRE: Java Runtime Environment - java运行环境 JVM: Java Virtual Machine - Java 虚拟机 关系:Jdk包含JRE,JRE包含JVM 二 Java 开发环境配置 1.下载JDK: www.oracle.com(download->Java(右侧)->Java SE (includes JavaFX) | Early Acc

Java JDK、JRE、JVM的区别与联系

title: Java JDK.JRE.JVM的区别与联系 date: 2018-03-17 23:07:33 category: 原创 --- JDK: 全名:Java Development Kit 含义:Java开发工具包 JDK中包含JRE,在JDK的安装目录下有一个名为jre的目录,里面有两个文件夹bin和lib,在这里可以认为bin里的就是jvm,lib中则是jvm工作所需要的类库,而jvm和 lib和起来就称为jre. JDK是整个JAVA的核心,包括了Java运行环境JRE(Ja

jdk,jre,jvm的区别以及联系

作为一个 java开发工程师,我做面试题的时候,竟然都搞不懂jdk,jre,jvm的区别和联系了,真实太菜了.不过吃一堑长一智,多多吸取教训还是比较好的. JVM:java虚拟机,用来编译和运行java程序的,将java文件编译成.class进行解释执行. JVM > JDK > JRE JRE:指的是Java运行环境,Class文件运行时需要调用各种Java类库,即class文件运行时,需要调用各种类库,就需要依赖jre中的lib库,可以认为jvm+lib组成jre 我们可以看一下JRE的组

Difference between JDK, JRE and JVM

With Java programming language, the three terms i.e. JDK, JRE and JVM will always be there to understand the difference between them. If you area Java developer, it is very important to know about these core concepts of Java language. Once, if you un

JDK、JRE、JVM的区别和联系

JDK=JRE+开发工具包: JRE=JVM+核心内库: JVM--java virtual machine(Java虚拟机).Java语言的一个非常重要的特点就是跨平台,而要实现跨平台就是依靠JVM(Java虚拟机).不同的平台对应不同的JVM,Java程序编译后生成的字节码文件(.class文件)通过JVM(Java虚拟机)生成具体平台机器执行指令,这就是Java能够"一次编译,到处运行"的原因. JRE--Java Runtime Environment,Java运行环境.仅仅靠

Java中JDK,JRE和JVM之间的关系

初学JAVA很容易被其中的很多概念弄的傻傻分不清楚,首先从概念上理解一下吧,JDK(Java Development Kit)简单理解就是Java开发工具包,JRE(Java Runtime Enviroment)是Java的运行环境,JVM( java virtual machine)也就是常常听到Java虚拟机.JDK是面向开发者的,JRE是面向使用JAVA程序的用户,上面只是简单的区别,一般网上好多都讲概念,我就不讲了,直接截图应该会更清晰一点,我安装的JDK1.8,效果如图: JDK和J

java学习之Java中JDK,JRE和JVM之间的关系(转载)

最近要重新抓一下java,大量扫技术文档,保存下来供自己查阅.以下转载自http://www.cnblogs.com/xiaofeixiang/p/4085159.html 初学JAVA很容易被其中的很多概念弄的傻傻分不清楚,首先从概念上理解一下吧,JDK(Java Development Kit)简单理解就是Java开发工具包,JRE(Java Runtime Enviroment)是Java的运行环境,JVM( java virtual machine)也就是常常听到Java虚拟机.JDK是

Java基础知识 ——JDK,JRE和JVM

1.开发简单的Java程序过程: 名词解释: JDK:JDK是 Java 语言的软件开发工具包,主要用于移动设备.嵌入式设备上的java应用程序.JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具.没有JDK的话,无法编译Java程序(指java源码.java文件),如果想只运行Java程序(指class或jar或其它归档文件),要确保已安装相应的JRE. JDK包含的基本组件包括: javac – 编译器,将源程序转成字节码 jar – 打包工

JDK、JRE、JVM的区别与联系

JVM -- java virtual machine      JVM就是我们常说的java虚拟机,它是整个java实现跨平台的 最核心的部分,所有的java程序会首先被编译为.class的类文件. JVM的工作流程: 1.编写源文件(.java) 2.通过编译器javac.将源文件编译成*.class字节码文件 3.类加载器:先加载启动类库,在加载扩展类库,最后加载用户自定义类库 4.字节码校验器,校验不通过,产生异常 5.解释器:解释为机器代码,跨平台 6.操作系统       JVM 的