安装java时两个jre三个lib分别的作用

本文探讨了安装JDK后安装目录中出现的两个JRE(专用JRE和公共JRE)及其作用,以及三个lib文件夹的区别。专用JRE用于JDK工具,公共JRE供其他Java应用使用并注册到Windows注册表。lib文件夹中,JDK的lib用于开发环境,JRE的lib包含运行时所需的标准和扩展类库,而JDK下的JRE lib用于开发环境中的运行时需求,如外部驱动导入。

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

  毕业了,从毕设答辩的前几周(6月初)到现在(7月中)又过了好久,这之间没学过一点东西。从6月初疯狂写论文、查重,到20号答辩,然后紧接着参加毕业典礼,然后又和同学告别,哪还有心思学习,嘻嘻。现在来到单位一周,想着整理下思绪吧。我发现软件这些知识,只要有一段时间没学习,就感觉特别生疏了。回到最初学习java的场景,追本溯源,思考下以前没怎么想过、现在如果不解决就浑身蓝瘦的问题。

1. 为什么我们在安装了JDK之后,在安装目录中会有两个版本的jre文件呢?

分别如下:
D:\Program Files\Java\jdk1.8.0_181\jre
D:\Program Files\Java\jre1.8.0_181

  • 专用JRE
      安装 JDK 时,会安装一个专用 JRE,并且您可以选择安装一个公共副本。需要专用 JRE 才能运行 JDK 中包含的工具。也就是说当你使用jdk时,它会使用jdk文件下的jre。专用 JRE 没有注册表设置,并且完全包含在仅对 JDK 已知的 Java 目录位置(通常位于 D:\Program Files\Java\jdk1.8.0_181\jre)中。

  • 公共 JRE
      公共 JRE 可由其他 Java 应用程序使用(这里的应用程序是指已经做好的软件,不是正在开发的字节码),并且包含在 JDK 外部(通常位于 D:\Program Files\Java\jre1.8.0_181)。公共 JRE 会注册到 Windows 注册表(位于 HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft)中。公共 JRE 可以使用“添加/删除程序”进行删除,并且还会注册到浏览器。

  我们知道运行JAVA程序的时候,只需要适合用JRE就能够运行了,而并不需要使用JDK中的开发工具(如javac java等等),公共JRE就是为运行加载到计算机中的JAVA程序来提供运行环境的,也就是说,如果我们并不需要开发JAVA程序,而仅仅是运行他人的已有的JAVA程序的时候,仅仅安装这个在 JDK外部的JRE文件就足够了,但是如果我们需要开发JAVA程序,那么就必须安装JDK,JDK中包含专用JRE和开发工具,这些开发工具需要专用JRE才能够使用,也就说专用JRE是为我们开发JAVA程序准备的同时要注意,这两个JRE文件中的内容是有区别的,所以不能够简单的进行替换。注意平时所说的“java自动更新”根本不是所安装的JDK版本的更新,它指的是这个公用JRE运行时环境的更新,这个更新为的是让你的计算机能够使用最新版本正常的运行一些网站或则Web应用等等当中的java程序,如果不及时更新的话,可能我们在浏览一些网页或者web应用时,不能够正常的交互和显示,这与JDK没有任何的关系,很多人认为“java的自动更新”指的是JDK版本的自动更新,这就大错特错了。所以如果我们要想升级JDK的版本,只能够从官网中下载最新版本的JDK,重新安装。、

2. java安装目录下为什么有三个lib文件夹?

分别位于:
D:\Program Files\Java\jdk1.8.0_181\lib
D:\Program Files\Java\jdk1.8.0_181\jre\lib
D:\Program Files\Java\jre1.8.0_181\lib

  经过验证,把servlet-api.jar包拷贝进入jdk下的jre下的lib下的ext目录后,import语句顺利通过编译!即:D:\Program Files\Java\jdk1.8.0_181\jre\lib\ext。其他从外部导入的jar包,都放在这个目录下。例如:在工程中导入mysql驱动jar包“mysql-connector-java-8.0.13.jar”也放在该目录下。

总结:

  • JDK下的lib包括java开发环境的jar包,是给JDK用的,例如JDK下有一些工具,可能要用该目录中的文件。例如,编译器等。
  • JRE下的lib只是运行java程序的jar包(这里类比外部jre),是为JVM运行时候用的。包括所有的标准类库,和扩展类。
  • JDK下的JRE下的lib是开发环境中(这里类比jdk下的jre),运行时需要的jar包。最典型的就是导入的外部驱动jar包。因为编译时,系统找的是jdk下的jre。而不是最外层的jre。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值