JDK和JRE的区别?

自身对于JDK和JRE了解不是很深刻,重新学习了下别人对于它俩的认识。

JDK就是Java Development Kit.简单的说JDK是面向开发人员使用的SDK,它提供了Java的开发环境和运行环境。SDK是Software Development Kit 一般指软件开发包,可以包括函数库、编译程序等。
JRE是Java Runtime Enviroment是指Java的运行环境,是面向Java程序的使用者,而不是开发者。

如果安装了JDK,会发同你的电脑有两套JRE,一套位于 \jre 另外一套位于 C:\Program Files\Java\jre1.5.0_15 目录下,后面这套比前面那套少了Server端的Java虚拟机,不过直接将前面那套的Server端Java虚拟机复制过来就行了。而且在安装JDK可以选择是否安装这个位于 C:\Program Files\Java 目录下的JRE。如果你只安装JRE,而不是JDK,那么只会在 C:\Program Files\Java 目录下安装唯一的一套JRE。
JRE的地位就象一台PC机一样,我们写好的Win32应用程序需要操作系统帮我们运行,同样的,我们编写的Java程序也必须要JRE才能运行。所以当你装完JDK后,如果分别在硬盘上的两个不同地方安装了两套JRE,那么你可以想象你的电脑有两台虚拟的Java PC机,都具有运行Java程序的功能。所以我们可以说,只要你的电脑安装了JRE,就可以正确运行Java应用程序。
1、为什么Sun要让JDK安装两套相同的JRE?
这是因为JDK里面有很多用Java所编写的开发工具(如javac.exe、jar.exe等),而且都放置在 \lib\tools.jar 里。从下面例子可以看出,先将tools.jar改名为tools1.jar,然后运行javac.exe,显示如下结果: Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/tools/javac /Main 这个意思是说,你输入javac.exe与输入 java -cp c:\jdk\lib\tools.jar com.sun.tools.javac.Main 是一样的,会得到相同的结果。从这里我们可以证明javac.exe只是一个包装器(Wrapper),而制作的目的是为了让开发者免于输入太长的指命。而且可以发现\lib目录下的程序都很小,不大于2 9K,从这里我们可以得出一个结论。就是JDK里的工具几乎是用Java所编写,所以也是Java应用程序,因此要使用JDK所附的工具来开发Java程序,也必须要自行附一套JRE才行,所以位于C:\Program Files\Java目录下的那套JRE就是用来运行一般Java程序用的。
2、如果一台电脑安装两套以上的JRE,谁来决定呢?
这个重大任务就落在java.exe身上。Java.exe的工作就是找到合适的JRE来运行Java程序。 Java.exe依照底下的顺序来查找JRE:自己的目录下有没有JRE;父目录有没有JRE;查询注册表: [HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment] 所以java.exe的运行结果与你的电脑里面哪个JRE被执行有很大的关系。

时间: 2024-11-04 12:16:53

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等嵌入式开发

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

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

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的开发工具包,里面包含了各种类库和

什么是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