JDK、JRE与JVM

本文深入探讨了JDK与JRE的区别,解释了为何每个JDK中包含两套JRE,并详细说明了Java程序是如何在不同JRE中执行的。重点在于解释java.exe在查找并执行合适JRE的过程,以及如何通过验证版本程序确保程序正确运行。同时,文章解析了JVM的位置及其在JRE中的角色。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值