jdk、jre、jvm详解

本文详细解释了Java运行环境(JRE)与开发工具包(JDK)的区别及组成部分,介绍了JVM的作用及其在不同目录下的实现方式,并阐述了环境变量设置的重要性。

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

Jre是javaruntimeenvironment,是java程序的运行环境。既然是运行,当然
  要包含jvm,也就是大家熟悉的虚拟机,还有所有java类库的class文件,都在lib目
  录下打包成了jar。大家可以自己验证。至于在windows上的虚拟机是哪个文件呢?学过
  MFC的都知道什么是dll文件吧。那么大家看看
  
  jre/bin/client里面是不是有一个jvm.dll呢?那就是虚拟机。
  
  Jdk是javadevelopmentkit,是java的开发工具包,里面包含了各种类库和工具
  。当然也包括了另外一个Jre.那么为什么要包括另外一个Jre呢?而且jdk/jre/bin同
  时有client和server两个文件夹下都包含一个jvm.dll。说明是有两个虚拟机的。这一
  点不知道大家是否注意到了呢?
  
  相信大家都知道jdk的bin下有各种java程序需要用到的命令,与jre的bin目录最明显的区
  别就是jdk下才有javac,这一点很好理解,因为jre只是一个运行环境而已。与开发无关,
  正因为如此,具备开发功能的jdk自己的jre下才会同时有client性质的jvm和server性质的
  jvm,而仅仅作为运行环境的jre下只需要client性质的jvm.dll就够了。
  
  记得在环境变量path中设置jdk/bin路径?这应该是大家学习Java的第一步吧,老师
  会告诉大家不设置的话javac和java是用不了的。确实jdk/bin目录下包含了所有的命令。
  可是有没有人想过我们用的java命令并不是jdk/bin目录下的而是jre/bin目录下的呢?不
  信可以做一个实验,大家可以把jdk/bin目录下的java.exe剪切到别的地方再运行java程序
  ,发现了什么?一切OK!
  
  那么有人会问了?我明明没有设置jre/bin目录到环境变量中啊?
  
  试想一下如果java为了提供给大多数人使用,他们是不需要jdk做开发的,只需要jre能让
  java程序跑起来就可以了,那么每个客户还需要手动去设置环境变量多麻烦啊?所以安装
  jre的时候安装程序自动帮你把jre的java.exe添加到了系统变量中,验证的方法很简单,
  大家看到了系统环境变量的path最前面有“%SystemRoot%system32;%SystemRoot%;”这样
  的配置,那么再去Windows/system32下面去看看吧,发现了什么?有一个java.exe。
  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值