JDK、JRE与JVM

来源:互联网 发布:黄金td模拟软件 编辑:程序博客网 时间:2024/04/28 05:40
JDK(JAVA Develop Kit,JAVA开发工具包)提供了Java的开发环境和运行环境,主要用于开发JAVA程序,面向Java程序的开发者;
      JRE(JAVA Runtime Environment,JAVA运行环境)提供了Java的运行环境,主要用于执行JAVA程序,面向Java程序的使用者。

      一般情况下,每个JDK里面包含两套JRE。以JDK 1.5.x(默认安装路径是C:/Program Files/Java)为例,在C:/Program Files/Java/jdk1.5.x/目录下有一个JRE,在C:/Program Files/Java/目录下也有一个JRE。为什么会有两套JRE呢?因为JDK里面的工具也是用JAVA编写的,它们本身运行的时候也需要一套JRE,即C:/Program Files/Java/jdk1.5.x/目录下的JRE。而C:/Program Files/Java/目录下的JRE是用来执行我们自己编写的JAVA程序。当然,两套JRE中的任何一套都可以用来执行我们自己编写的JAVA程序,但是JDK里面的工具只能由C:/Program Files/Java/jdk1.5.x/目录下的JRE来执行。
      既然在我们的电脑里面至少有两套JRE(如果安装了Borland JBuilder等高级开发工具,电脑里面会有更多套的JRE),那么由谁来决定使用哪一套JRE呢?这个重担就落在java.exe的身上。
      当我们在命令行输入:
java xxx
的时候,java.exe的任务就是在我们电脑上众多的JRE中找到合适的JRE来执行xxx。java.exe依据以下顺序来寻找JRE:
      (1)自己的目录下有没有JRE目录;
      (2)父目录下有没有JRE目录;
      (3)查询注册表HKEY_LOCAL_MACHINE/Software/JavaSoft/Java Runtime  Environment/
      所以java.exe的执行结果与我们电脑里哪一个java.exe(搜索一下就会发现我们电脑里面也不止一个java.exe)被执行以及哪套JRE来执行JVA程序有很大的关系。
      另外,java.exe在找到合适的JRE以后,还有一个验证版本的程序,也就是java.exe与JRE的版本一致才可以执行。如果出现版本不一致的问题,一定要记得两件事情:
      (1)哪一个java.exe被执行;
      (2)java.exe找到哪一套JRE。
只要这两件事情确定了,我们就抓住了问题的来龙去脉,解决起来也就轻而易举了。

      JVM(JAVA Virtual Machine,JAVA虚拟机)是JRE的一部分,JRE是JVM的补充。那么JVM到底在哪里呢?我们打开C:/Program Files/Java/jdk1.5.x/jre/bin,会看到client和server两个目录,在这两个目录中分别可以看到jvm.dll,这就是我们所说的JVM之所在。

 
原创粉丝点击