jdk和jre的区别与联系

Jre 是java runtime environment, 是java程序的运行环境。既然是运行,当然要包含jvm,也就是大家熟悉的虚拟机啦,还有所有java类库的class文件,都在lib目录下打包成了jar。大家可以自己验证。至于在windows上的虚拟机是哪个文件呢?学过MFC的都知道什么是dll文件吧,那么大家看看jre/bin/client里面是不是有一个jvm.dll呢?那就是虚拟机。

Jdk 是java development kit,是java的开发工具包,里面包含了各种类库和工具。当然也包括了另外一个Jre. 那么为什么要包括另外一个Jre呢?而且jdk/jre/bin同时有client和server两个文件夹下都包含一个jvm.dll。说明是有两个虚拟机的。这一点不知道大家是否注意到了呢?

安装JDK后,Java目录下有jdk和jre两个文件夹,但jdk下还有一个jre文件夹,而且这个jre比前面那个jre在bin目录下多了个server文件夹!

普通用户装jre即可。开发人员需要安装jdk,其中包括jre。所以jdk目录下包括jre目录。两个jre大体相同,有细微的差别。

两套 jre ,是针对不同的工作职责!不同的 jre 负责各自范围的内容。

当用户只需要执行 java 的程序时,那么C:\Program Files\Java\jre1.5.0_08的 jre 就 ok !

当用户是 java 程序员,则需要 java 开发环境。编译时,系统就会优先去找C:\Program Files\Java\jdk1.5.0_08\bin下的“ java 、 javac ”这些命令所在目录或者他们的父目录的 jre 。即开发环境下运行的是 jdk 下的 jre 。

再说三个lib目录:

JDK下的lib包括java开发环境的jar包,是给JDK用的,例如JDK下有一些工具,可能要用该目录中的文件。例如,编译器等。

JRE下的lib只是运行java程序的jar包,是为JVM运行时候用的。包括所有的标准类库,和扩展类。

JDK下的JRE下的lib是开发环境中,运行时需要的jar包。最典型的就是导入的外部驱动jar包。因为编译时,系统找的是jdk下的jre。而不是最外层的jre。

最后我在这里补充几点: 
    1. 在使用Eclipse的时候不需要指定的CLASSPATH,Eclipse会自己搜索. 
    2. 独立目录下的jre是通用jre,安装时是可选的(选择了,则会覆盖已有版本)。jdk目录下的jre则是必须的。如果你在eclipse里指定jdk的路径(jre的路径不用你指定,会自己去找的),那么用的就是这个jre。而java, web, start等,用的则是通用jre。

参考:https://www.douban.com/note/355408223/

http://www.cnblogs.com/bukudekong/archive/2011/06/27/2091504.html

时间: 2024-10-08 10:44:32

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

jdk与jre的区别

jdk就是java的开发工具集,顾名思义就是你做开发用的,其中包括javac,也就是java compiler等.jre(java runtime environment),就是java程序的运行环境.你所写的java程序在经过javac编译后会形成字符行文件,这个java的中间文件,计算机是看不懂的,而这个文件是给jvm(java的虚拟机)用的,由jvm进行解释后形成机器语言给计算机.而这个jvm就在jre中,也就是说java程序的运行要有jre来担当.所以jdk和jre的区别就是一个用于开发

jdk与jre的区别 【转】

jdk与jre的区别: 很多程序员已经干了一段时间java了依然不明白jdk与jre的区别.JDK就是Java Development Kit.简单的说JDK是面向开发人员使用的SDK,它提供了Java的开发环境和运行环境.SDK是Software Development Kit 一般指软件开发包,可以包括函数库.编译程序等.JRE是Java Runtime Enviroment是指Java的运行环境,是面向Java程序的使用者,而不是开发者.如果安装了JDK,会发同你的电脑有两套JRE,一套位

J2EE,J2SE,J2ME,JDK,SDK,JRE,JVM区别(转载)

转载地址:http://blog.csdn.net/alspwx/article/details/20799017 一.J2EE.J2SE.J2ME区别 J2EE--全称Java 2 Enterprise Edition,是Java的一种企业版,用于企业级应用开发. J2SE--全称Java 2 Standard Edition,是Java的标准版,用于标准应用开发,也是Java基础版本. J2ME--全称Java 2 Micro Edition,是Java的微型版,用于手机.PDA等嵌入式开发

JDK和JRE的区别?

自身对于JDK和JRE了解不是很深刻,重新学习了下别人对于它俩的认识. JDK就是Java Development Kit.简单的说JDK是面向开发人员使用的SDK,它提供了Java的开发环境和运行环境.SDK是Software Development Kit 一般指软件开发包,可以包括函数库.编译程序等.JRE是Java Runtime Enviroment是指Java的运行环境,是面向Java程序的使用者,而不是开发者. 如果安装了JDK,会发同你的电脑有两套JRE,一套位于 \jre 另外

Question 5 JDK和JRE的区别和各自承担的作用

我们学习过Java的同志都知道,Java是一种跨平台的语言,Java的跨平台依赖于JVM,JVM并不是跨平台的.使用Java语言编写的源代码经过编译(依赖于JDK与JRE核心类库),然后经由JVM解释执行,这是Java从编写到执行的一条大略路线(可以参考下图),在这里边我们看到了JDK.JRE.JVM,那么他们各自是什么呢,各自又负责了什么样的功能作用呢,下面我们来一一解析. JDK jdk是 Java 语言的软件开发工具包,是提供给Java开发人员使用的,其中包含了java的开发工具,也包括了

什么是JDK?什么是JRE?JDK与JRE的区别和用途

一.编程环境与运行环境 JDK(Java Development Kit)称为Java开发包或Java开发工具.是一个编写Java的Applet小程序和应用程序的程序开发环境.JDK是整个Java的核心,包括了Java运行环境(Java Runtime Envirnment),一些Java工具和Java的核心类库(Java API).不论什么Java应用服务器实质都是内置了某个版本的JDK. JRE(JAVA Runtime Environment)称为Java运行环境,是一个由Java API

jdk和jre的区别

jdk跟eclipse.myeclipse.netbeans等软件一样是java语言的开发软件,只不过jdk没有像他们那样的可视化开发界面,需要在cmd下面进行运行才行.至于jre当然是java语言的运行环境,也就是虚拟机,jdk.eclipse.myeclipse.netbeans等软件需要jre才能开发运行java语言! 简单的说JDK是面向开发人员使用的SDK,它提供了Java的开发环境和运行环境.SDK是Software Development Kit 一般指软件开发包,可以包括函数库.

jdk 和jre的区别

JDK javac命令 java命令 jre JVM JRE java命令 JVM JDK 中包含了所有Java需要的东西,配置环境变量path路径中设置jdk/bin路径. 我们就可以使用javac命令编译java文件了,而我们所使用的java运行命令其实是属于JRE里面的, 我们在安装JRE的时候系统自动把java命令添加到了系统变量中, 这个主要考虑到非开发人员仅仅想运行java程序,不用再手动设置环境变量了.

JDK,JRE,JVM区别与联系

JDK : Java Development ToolKit(Java开发工具包).JDK是整个JAVA的核心,包括了Java运行环境(Java Runtime Envirnment),一堆Java工具(javac/java/jdb等)和Java基础的类库(即Java API 包括rt.jar). 最主流的JDK是Sun公司发布的JDK,除了Sun之外,还有很多公司和组织都开发了属于自己的JDK,例如国外IBM公司开发了属于自己的JDK,国内淘宝也开发了属于自己的JDK,各个组织开发自己的JDK