JDK、JRE、JVM三者之间的关系
JDK、JRE、JVM
以下内容转载自JDK、JRE和JVM三者之间关系_geyouchao的博客-CSDN博客 侵删,谢谢
JDK:Java Development Kit (Java开发工具包)
JRE: Java Runtime Environment(Java运行时环境)
JVM: Java Virtual Machine(Java虚拟机)
三者关系
JDK是针对Java开发员的产品,是整个Java的核心,包括了Java运行环境JRE、Java工具和Java基础类库。
JRE是运行Java程序所必须的环境的集合,包含JVM标准实现及Java核心类库。
JVM是Java虚拟机的缩写,是整个Java实现扩平台的最核心的部分,能够运行以Java语言写作的软件程序。
三者详细介绍
JDK
JDK是java开发工具包,在其安装目录下有六个文件夹、一些描述文件、一个src压缩文件。bin、include、lib、jre这四个文件夹起作用,demo、sample是一些例子。JDK包含JRE,而JRE包含JVM。
bin:最主要的是编译器(javac.exe) include:java和JVM交互用的头文件 lib:类库 jre:java运行环境(注意:这里的bin、lib文件夹和jre里的bin、lib是不同的) 总的来说JDK是用于java程序的开发,而jre则是只能运行class而没有编译的功能。 JDK是提供给Java开发人员使用的,其中包含了java的开发工具,也包括了JRE。所以安装了JDK,就不用在单独安装JRE了。 其中的开发工具包括编译工具(javac.exe)打包工具(jar.exe)等
JRE
JRE是指java运行环境。光有JVM还不能成class的执行,因为在解释class的时候JVM需要调用解释所需要的类库lib。在JDK的安装目录里你可以找到jre目录,里面有两个文件夹bin和lib,在这里可以认为bin里的就是jvm,lib中则是jvm工作所需要的类库,而jvm和 lib和起来就称为jre。所以,在你写完java程序编译成.class之后,你可以把这个.class文件和jre一起打包发给朋友,这样你的朋友就可以运行你写程序了。 包括Java虚拟机(JVM Java Virtual Machine)和Java程序所需的核心类库等, 如果想要运行一个开发好的Java程序,计算机中只需要安装JRE即可。
JVM
JVM就是我们常说的java虚拟机,它是整个java实现跨平台的最核心的部分,所有的java程序会首先被编译为.class的类文件,这种类文件可以在虚拟机上执行,也就是说class并不直接与机器的操作系统相对应,而是经过虚拟机间接与操作系统交互,由虚拟机将程序解释给本地系统执行。 可以理解为是一个虚拟出来的计算机,具备着计算机的基本运算方式,它主要负责将java程序生成的字节码文件解释成具体系统平台上的机器指令。让具体平台如window运行这些Java程序。
简单而言:使用JDK开发完成的java程序,交给JRE去运行。
三者之间关系
JVM:将字节码文件转成具体系统平台的机器指令。 JRE:JVM+Java语言的核心类库。 JDK:JRE+Java的开发工具。
我们开发的实际情况是:我们利用JDK(调用JAVA API)开发了属于我们自己的JAVA程序后,通过JDK中的编译程序(javac)将我们的文本java文件编译成JAVA字节码,在JRE上运行这些JAVA字节码,JVM解析这些字节码,映射到CPU指令集或OS的系统调用。
JDK、JRE、JVM三者之间的关系的更多相关文章
- jdk jre jvm 三者之间关系
JDK JDK是java开发工具包,是Sun公司针对Java开发员的产品. JDK 中包含JRE,在JDK安装的目录下有一个叫jre的目录,里面有两个文件夹,bin/和lib,其中bin就是j ...
- 浅谈 JVM 结构体系、类加载、JDK JRE JVM 三者的关系
一.java类,创建.编译.到运行的工程: 1.随便建一个Java类,保存后就是一个.java文件, 2.然后我们使用 javac命令编译 .java文件,生产 .class文件. 3.再然后使用 j ...
- JDK,JRE,JVM三者之间的关系和作用
1,定义: JDK: Java Develpment Kit java 开发工具 bin:最主要的是编译器(javac.exe) include:java和JVM交互用的头文件 lib:类库 JRE: ...
- jdk,jre.jvm三者的关系
jdk>jre>jvm jdk=jre+java的开发工具(包括java.exe,javac.exe.javadoc.exe) jre=jvm+java核心类库
- JDK,JRE,JVM三者关系
已上图,如有疏漏错误请在下面评论区指出,感激不尽!
- JDK,JRE,JVM的作用及关系
1.作用 JVM:Java虚拟机,保证Java语言跨平台 JRE:Java程序的运行环境 JDK:Java程序的开发环境 2.关系 JRE:JVM+类库 JDK:JRE+工具
- JDK JRE JVM的区别与关系
JDK JAVA开发工具包 他包含了JRE JAVA运行环境 JVM JAVA虚拟机他是跨平台的核心主件 他将Java源文件编译成 .class结尾字节码文件交由不同计算机执行 ...
- jdk jre jvm 关系
很多朋友可能跟我一样,已经使用JAVA开发很久了,可是对JDK,JRE,JVM这三者的联系与区别,一直都是模模糊糊的. 今天特写此文,来整理下三者的关系. JDK : Java Development ...
- JDK,JRE,JVM区别与联系(ZZ)
http://www.cnblogs.com/hencehong/p/3252166.html 我们开发的实际情况是:我们利用JDK(调用JAVA API)开发了属于我们自己的JAVA程序后,通过JD ...
- JDK,JRE,JVM区别与联系-理解与概括
我们利用JDK(调用JAVA API)开发了属于我们自己的JAVA程序后,通过JDK中的编译程序(javac)将我们的文本java文件编译成JAVA字节码,在JRE上运行这些JAVA字节码,JVM解析 ...
随机推荐
- 解决linux vlc设置中文问题
解决方法 sudo apt install vlc-l10n
- vulnhub靶场之CONTAINME: 1
准备: 攻击机:虚拟机kali.本机win10. 靶机:CONTAINME: 1,下载地址:https://download.vulnhub.com/containme/THM-ContainMe-v ...
- 开发一个最简单的iOS App
开发一个最简单的iOS App 大家好,我是孜孜不倦学习的Zhangbeihai. 上月底我组织了[组队学习]TensorFlow 入门课程(中文) ,截至目前有300多同学加入.主要就是 Tenso ...
- 下载Font Awesome框架
目录 一:下载Font Awesome框架 二:如何使用font awesome 1.使用图标等样式,点击复制标签即可,需要嵌套在i标签内 2.点击图标,复制标签,然后粘贴使用即可. 3.动态图片等 ...
- 一个简单的工具开发:从学生端更新程序部署工具说起,浅谈qt中自定义控件制作和调用、TCP协议下文件的收发 、以及可执行文件的打包
一个简单的工具开发:从学生端更新程序部署工具说起,浅谈qt中ui的使用和TCP协议下文件的收发.以及可执行文件的打包 写在前面,Qt Designer是一个非常操蛋的页面编辑器,它非常的...怎么说呢 ...
- VUE项目无法启动NODE版本与NODE-SASS、SASS-LOADER版本不兼容解决方案
一.错误分析 在VUE项目开发中,我们经常会遇到报错: Node Sass version 7.0.1 is incompatible with ^4.0.0. 网上解决方案也千奇百怪,最终操作下来, ...
- 区块链,中心去,何曾着眼看君王?用Go语言实现区块链技术,通过Golang秒懂区块链
区块链技术并不是什么高级概念,它并不比量子力学.泡利不相容原则.哥德巴赫猜想更难以理解,但却也不是什么类似"时间就是金钱"这种妇孺皆知的浅显道理.区块链其实是一套统筹组织记录的方法 ...
- week_6
Andrew Ng 机器学习笔记 ---By Orangestar Week_6 (1) In Week 6, you will be learning about systematically im ...
- 8000字详解Thread Pool Executor
摘要:Java是如何实现和管理线程池的? 本文分享自华为云社区<JUC线程池: ThreadPoolExecutor详解>,作者:龙哥手记 . 带着大厂的面试问题去理解 提示 请带着这些问 ...
- 宝塔SSL
1:开启面板SSL访问教程 开启完之后,要以 https 方式访问面板 一定要先 下载证书 和 复制证书密码 再点"开启ssl",不然得重置再走一遍流程. [教程贴]如何开启面板S ...