`

JDK JRE 的作用与区别【转】

 
阅读更多

对于java初学者来说,往往不懂区分jdk和jre的区别,实际上这两个东西差别很大的,有必要了解一下: 

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

如果安装了JDK,会发同你的电脑有两套JRE,一套位于 \jre 另外一套位于 C:\Program Files\Java\j2re1.4.1_01 目录下,后面这套比前面那套少了Server端的Java虚拟机,不过直接将前面那套的Server端Java虚拟机复制过来就行了。而且在安装JDK可以选择是否安装这个位于 C:\Program Files\Jav a 目录下的JRE。如果你只安装JRE,而不是JDK,那么只会在 C:\Program Files\Java 目录下安装唯一的一套JRE。 

     JRE的地位就象一台PC机一样,我们写好的Win32应用程序需要操作系统帮我们运行,同样的,我们编写的Java程序也必须要JRE才能运行。所以当你装完JDK后,如果分别在硬盘上的两个不同地方安装了两套JRE,那么你可以想象你的电脑有两台虚拟的Java PC机,都具有运行Java程序的功能。所以我们可以说,只要你的电脑安装了JRE,就可以正确运行Jav a应用程序。 

       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被执行有很大的关系。 

     3、介绍JVM JRE目录下的Bin目录有两个目录:server与client。这就是真正的jvm.dll所在。 jvm.dll无法单独工作,当jvm.dll启动后,会使用explicit的方法(就是使用Win32 API之中的LoadLibrary()与GetProcAddress()来载入辅助用的动态链接库),而这些辅助用的动态链接库(.dll)都必须位于jvm.dll所在目录的父目录之中。因此想使用哪个JVM,只需要设置PATH,指向JRE所在目录底下的jvm.dll。 

分享到:
评论

相关推荐

    JDK JRE 的作用与区别

    我们在MyEclipse 的安装文件里会看到JDK和JRE两个文件,你知道JDK JRE 的作用与区别么

    jdk与jre的区别

    讲述了jdk与jre的区别,值得一看!很多程序员已经干了一段时间java了依然不明白jdk与jre的区别。JDK就是Java Development Kit.简单的说JDK是面向开发人员使用的SDK,它提供了Java的开发环境和运行环境。SDK是...

    jdk、jre、jvm的区别

    网上摘录总结的关于jdk、jre、jvm的区别

    jdk和jre的区别

    jdk和jre的区别.doc

    java jdk jre8

    java jdk jre8java jdk jre8

    Java环境 Eclipse配置教程+软件包jdk jre

    Java环境配置教程,环境变量设置教程,内含Eclipse、jdk和jre安装包等等。

    JRE与JDK的区别

    开始接触Java的时候觉得Java虚拟机很麻烦,不明白JRE与JDK的区别是什么?后来搞清楚JRE是个运行环境,JDK是个开发环境。

    jdk与jre的区别.

    JDK就是Java Development Kit.简单的说JDK是面向开发人员使用的SDK,它提供了Java的开发环境和运行环境。...JRE是Java Runtime Enviroment是指Java的运行环境,是面向Java程序的使用者,而不是开发者。

    AIX JDK1.8 JRE1.8 32位

    AIX JDK1.8 JRE1.8 IBM官网下载的安装包 jdk 和jre都有 32位,由于官网下载太慢,这里另存一份,需要的同学自取

    JDK/JRE 1.7

    免安装JDK1.7、JRE1.7,解压后配置操作系统环境变量即可使用

    JDK、JRE及环境变量的内幕详解

    详解介绍了JDK与JRE的区别,介绍了安装JDK时两套JRE的区别,已经分析了在运行java程序时,是如果搜寻JRE的。最后,介绍了各环境变量的作用,以及变量的的搜寻方式。

    少量积分-java jdk jre各种版本非官方但安全的下载地址

    jdk jre各种版本win、mac、linux等,非官方但安全的下载地址,不用登陆甲骨文官网,不用忍受龟速下载 jdk-8u-linux-x64.tar.gz jdk-8u-windows-x64.exe

    java1.8jdk/jre.rar

    java1.8jdk/jre.rar

    linux jdk1.7 64位 jre jdk

    linux版本 jdk1.7 64位 jre jdk linux版本 jdk1.7 64位 jre jdk

    java jdk jre 资源信息

    java jdk jre 资源信息

    jdk与jre的不同

    jdk(java development kit),就是java的开发工具集,顾名思义就是你做开发用的,其中包括javac,也就是java compiler等

Global site tag (gtag.js) - Google Analytics