JDK、JVM和JRE三者间的关系,及JDK安装路径下的文件夹说明
JDK的全称是Java SE Development Kit, 即Java标准开发包,是Sun公司提供的一套用于开发Java应用程序的开发包, 它提供了编译、运行Java查询所需的各种工具和资源,包括ava编译器、Java运行时环境以及常用的 Java类库等。
这里又涉及一个概念: Java运行时环境,已它的全称是Java Runntime Environment,,因此也被称为JRE,它是运行Java查询的必需条件。
1.JRE 和JVM的关系
JVM是运行Java 程序的核心虚拟机,而运行Java程序不仅需要核心虚拟机,还需要其他的类加载器、 字节码校验器以及大量的基础类库。JRE除了包含JVM之外,还包含运行Java程序的其他环境支持。
2.JDK 和 JRE 的关系
如果需要安装Java程序,则应该选择安装JDK;当然安装了JDK之后,就包含了 JRE, 也可以运行 Java程序。
但如果只是运行Java程序,则需要在计算机上安装JRE,仅安装JVM是不够的。实际上, Oracle公司网站上提供的就是JRE 的下载,它并不提供单独的JVM下载。
JDK、JVM、JRE的关系图,如图所示

3.JDK安装路径下文件夹说明
(1)bin:该路径下存放了JDK的各种工具命令,常用的 javac、 java等命令就存放在该路径下。在jdk的 bin路径下,执行“javac A.java”,将Java源码文件A编译为字节码文件A.class,再执行“javaA”运行A。注意:java命令后的参数是 Java类名,而不是字节码文件的文件名,也不是Java源文件名。
(2)db:该路径是安装 Java 数据库的路径。
(3)include:—些平台特定的头文件。
(4)jre:运行 Java程序所必须的 JRE环境。
(5)lib:存放的是JDK工具命令的实际执行程序。用于编译Java程序所使用的java.exe命令,是使用Java 编写的,这个类就是libo路径下 tools.jar文件中 sun toolsVjavac路径下的Main 类。JDK的bin路径下的javac.exe命令实际上仅仅是包装了这个Java类。不仅如此,bin 路径下的绝大部分命令都是包装了tools.jar文件的工具类。
(6)javaf-src.zip:该压缩文件里存放的是JavaFX所有核心类库的源代码。
(7)src.zip:该压缩文件存放的是Java所有核心类库的源代码。
(8)README 和 LICENSE:说明性文档。
JDK、JVM和JRE三者间的关系,及JDK安装路径下的文件夹说明的更多相关文章
- JDK与JRE、JVM三者间的关系及JDK的安装部署
JDK与JRE.JVM三者间的关系及JDK的安装部署 一.JDK与JRE.JVM三者间的关系 JDK(Java Development Kit)是针对Java开发员的产品,是整个Java的核心,包括了 ...
- pg_hba.conf、pool_hba.conf 以及 pool_passwd 三者间的关系
pg_hba.conf.pool_hba.conf 以及 pool_passwd 三者间的关系: 1.pg_hba.conf.pool_hba.conf 以及 pool_passwd 三者关系 pg_ ...
- JDK、JRE、JVM三者间的关系
JDK(Java Development Kit)是针对Java开发员的产品,是整个Java的核心,包括了Java运行环境JRE.Java工具和Java基础类库.Java Runtime Enviro ...
- JDK、JRE、JVM三者间的关系(待更新...)
JDK(Java Development Kit) JDK中包含JRE,在JDK的安装目录下有一个名为jre的目录,里面有两个文件夹bin和lib,在这里可以认为bin里的就是jvm,lib中则是jv ...
- 连接池、数据源、JNDI三者间的关系及用法
连接池:连接池是由容器(比如Tomcat)提供的,用来管理池中的连接对象.连接池自动分配连接对象并对闲置的连接进行回收.连接池中的连接对象是由数据源(DataSource)创建的.连接池(Connec ...
- JDK安装路径下的JRE与独立安装的JRE区别
在JDK安装目录下的子文件下,已经默认安装了一个jre.且与独立安装的JRE6所包含的文件几乎完全一样. JDK里面内置的JRE和独立的JRE是有一点差别的: 在JDK安装文件中包含了一个完整的独立版 ...
- 为何在JDK安装路径下存在两个JRE?
"两个jre"和"三个lib"的功能简单扼要的解释 安装JDK后,Java目录下有jdk和jre两个文件夹,但jdk下还有一个jre文件夹,而且这个jre比前面 ...
- [原创]关于在VS解决方案下使用文件夹管理多个项目层次关系的说明
由于所创建的应用项目或类库项目较多,于是将这些类库放到一个文件夹下.在VS解决方案下确实能看到一个文件夹下多个类库项目这种层次关系.如下图所示: 但打开“我的电脑”,看到的只有类库,并未看到维护层次关 ...
- Activity、Window和View三者间的关系有一定的见解
一.简述如何将Activity展现在手机上 Tips: Activity本身是没办法处理显示什么控件(view)的,是通过PhoneWindow进行显示的 换句话说:activity就是在造Phone ...
随机推荐
- 【swift】复制后,为Xcode工程项目重新修改名称
感谢,参考了另一篇博客:https://www.jianshu.com/p/abf10c9609ef 我做了一些修改,和自己遇到的情况 我用的是繁体的mac,所以下面图片内,鼠标右键点出来的文字(丢到 ...
- mybatis-plus条件构造用is开头的Boolean类型字段时遇到的问题
is打头的Boolean字段导致的代码生成器与lambda构造器的冲突 https://gitee.com/baomidou/mybatis-plus/issues/I171DD?_from=gite ...
- Output of C++ Program | Set 14
Predict the output of following C++ program. Difficulty Level: Rookie Question 1 1 #include <iost ...
- d3动态坐标轴
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Spring Boot中使用Redis
一.定义工程 创建一个spring boot模块 二.修改pom文件 在pom文件中添加Spring Boot与Redis整合依赖 <dependencies> <!--spring ...
- 【力扣】19. 删除链表的倒数第 N 个结点
给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点. 进阶:你能尝试使用一趟扫描实现吗? 示例 1: 输入:head = [1,2,3,4,5], n = 2输出:[1,2,3,5]示例 ...
- JavaEE复习三
Http协议是基于请求/响应模式.无状态的协议:所有请求时相互独立的.无连续的:服务器无法记住与识别用户. 对于简单的页面浏览或信息获取,http协议可以完全胜任:对于需要提供客户端和服务器端交互的网 ...
- 【力扣】两个数组的交集 II
给定两个数组,编写一个函数来计算它们的交集. 示例 1: 输入:nums1 = [1,2,2,1], nums2 = [2,2]输出:[2,2]示例 2: 输入:nums1 = [4,9,5], nu ...
- typescript接口---interface
假如我现在需要批量生产一批对象,这些对象有相同的属性,并且对应属性值的数据类型一致.该怎么去做? 在ts中,因为要检验数据类型,所以必须对每个变量进行规范,自然也提供了一种批量规范的功能.这个功能就是 ...
- thinkPHP的多语言支持如何配置和部署
框架底层语言包位于:ThinkPHP/Lang/zh-cn.php 可以参考如何编写语言文件 第一步:项目目录下的配置文件中配置多语言支持的相关选项 以我的路径为例是Application\Commo ...