JDK, JRE和JVM的区别

本文详细解析了JDK(Java开发工具包)、JRE(Java运行时环境)及JVM(Java虚拟机)之间的关系及其各自的功能组成。介绍了JDK中的主要组件如编译器、数据库及类库等;JRE中的关键组成部分,如JVM及必要的类库;并解释了JVM如何执行.class文件。

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

JRE, JDK, JVM, 

总的来说, JDK包括JRE, 而JRE又包括了JVM.

JDK - Java Development Kit 

JDK是Java开发工具包。是针对Java开发人员提供的。安装完JDK后,可以看到它主要包括这几部分:

 

--bin 主要包含javac.exe, java.exe, javaws.exe等工具

--db  Java 6中加入的新成员。这是一个纯 Java 实现、开源的数据库管理系统(DBMS),源于 Apache 软件基金会(ASF)名下的项目 Derby。

--include Java和JVM交互用的头文件

--jre 包含一个Java运行时环境。

--lib Java开发环境类库

 

JRE - Java Runtime Environment

JRE是Jave运行时环境。运行Java程序必须JRE。主要包括:

--bin 可以认为这就是JVM

--lib JVM工作所需要的类库

 

JVM - Java Virtual Machine

JVM是Java虚拟机。.class文件就是运行在JVM上。

 

两处JRE的区别:

jdk下还有一个jre文件夹,而且这个jre在bin目录下多了个server文件夹!

    当用户只需要执行 java 的程序时,那么C:\Program Files\Java\jre1.5.0_08的 jre 就 ok !

    当用户是 java 程序员,则需要 java 开发环境。编译时,系统就会优先去找C:\Program Files\Java\jdk1.5.0_08\bin下的“ java 、 javac ”这些命令所在目录或者他们的父目录的 jre 。即开发环境下运行的是 jdk 下的 jre 。

 

3个lib目录的作用:

JDK下的lib包括java开发环境的jar包,是给JDK用的,例如JDK下有一些工具,可能要用该目录中的文件。例如,编译器等。

    JRE下的lib只是运行java程序的jar包,是为JVM运行时候用的。包括所有的标准类库,和扩展类。

    JDK下的JRE下的lib是开发环境中,运行时需要的jar包。最典型的就是导入的外部驱动jar包(/ext)。因为编译时,系统找的是jdk下的jre。而不是最外层的jre。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值