JDK安装目录分析-两个jre和三个lib

安装JDK后,Java目录下有jdk和jre两个目录,但jdk下还有一个jre目录,而且这个jre比前面那个jre在bin目录下少了个server文件夹(Server端的Java虚拟机)!前一个jre俗称通用jre,后一个俗称内置jre。如下图所示:

两个jre大体相同,有细微的差别。

JDK里面有很多用Java所编写的开发工具(如javac.exe、jar.exe等),而且都放置在 \lib\tools.jar 里面,它们本身运行的时候必须自行附一套JRE才行;所以开发人员需要 java 开发环境,安装jdk时,内置jre在JDK安装过程中会自动安装。

通用JRE则是用来执行我们自己编写的JAVA程序;所以普通用户装通用jre即可。

注意:因为编译时,系统找的是jdk下的jre,而不是最外层的jre。这意味着外层jre不能用于调试,否则会报错,例如在eclipse中会提示Unknown Source

 

再说三个lib

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

 

最后我在这里补充几点: 
    1. 在使用Eclipse的时候不需要指定的CLASSPATH,Eclipse会自己搜索. 
    2. 独立目录下的jre是通用jre,安装时是可选的(选择了,则会覆盖已有版本)。jdk目录下的jre则是必须的。如果你在eclipse里指定jdk的路径(jre的路径不用你指定,会自己去找的,用的就是这个内置jre。而java, web, start等,用的则是通用jre。

 

更详细深入分析请参考文章:http://blog.sina.com.cn/s/blog_9ba71d0b01014bux.html

posted @   钟灵.毓秀  阅读(2713)  评论(1编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· AI与.NET技术实操系列(六):基于图像分类模型对图像进行分类
点击右上角即可分享
微信分享提示