JDK、JRE、javac和JVM的关系
.java为Java的源文件后缀,编写的代码需要写在.java文件中。
Javac编译器,用于读取Java源代码,并将其编译成字节代码。经过javac编译后形成.class,是字节码文件。
Java虚拟机(JVM)运行.class文件从而实现程序的运行。
1、JVM——java virtual machine,就是我们常说的java虚拟机,它是整个java实现跨平台的最核心的部分,所有的java程序会首先被编译为.class的类文件,这种类文件可以在虚拟机上执行,也就是说class并不直接与机器的操作系统相对应,而是经过虚拟机间接与操作系统交互,由虚拟机将程序解释给本地系统执行。
2、JRE——java runtime environment,是指java运行环境。光有JVM还不能成class的执行,因为在解释class的时候JVM需要调用解释所需要的类库lib。在JDK的安装目录里你可以找到jre目录,里面有两个文件夹bin和lib,在这里可以认为bin里的就是jvm,lib中则是jvm工作所需要的类库,而jvm和 lib和起来就称为jre。所以,在你写完java程序编译成.class之后,你可以把这个.class文件和jre一起打包发给朋友,这样你的朋友就可以运行你写程序了。(jre里有运行.class的java.exe)
3、JDK——java development kit,是java开发工具包,基本上每个学java的人都会先在机器上装一个JDK,那他都包含哪几部分呢?让我们看一下JDK的安装目录。在目录下面有六个文件夹、一个src类库源码压缩包、和其他几个声明文件。其中,真正在运行java时起作用的是以下四个文件夹:bin、include、lib、 jre。
bin:最主要的是编译器(javac.exe)
include:java和JVM交互用的头文件
lib:类库
jre:java运行环境(注意:这里的bin、lib文件夹和jre里的bin、lib是不同的)
现在我们可以看出这样一个关系,JDK包含JRE,而JRE包含JVM。总的来说JDK是用于java程序的开发,而jre则是只能运行class而没有编译的功能。
Eclipse、ide、NetBeans等其他IDE有自己的编译器而不是用JDK bin目录中自带的,所以在安装时你会发现他们只要求你选中JRE路径就ok了。
Sanding整理
转载于:https://www.cnblogs.com/Aha-Sanding/p/5333282.html
JDK、JRE、javac和JVM的关系相关推荐
- jdk jre jvm 关系
很多朋友可能跟我一样,已经使用JAVA开发很久了,可是对JDK,JRE,JVM这三者的联系与区别,一直都是模模糊糊的. 今天特写此文,来整理下三者的关系. JDK : Java Development ...
- java-01 JAVA三大版本比较JDK、JRE、JVM 的关系
1. java三大版本比较 1.1 java SE javaSE 是java标准版的简称,其定位是个人计算机应用(应用原生界面比较ugly) 全称:Java Platform Standard Edi ...
- Java:JDK、JRE和JVM的关系(图示详解,一眼就能看明白!)
简介 JDK(Java Development Kit,Java开发工具包) JDK为Java应用程序提供了基本的开发和运行环境,是整个Java的核心,包括: 1.Java运行环境(JRE) 2.JD ...
- jdk jre jvm的关系
http://blog.csdn.net/gaopeng0071/article/details/9914683 JDK : Java Development ToolKit(Java开发工具包).J ...
- JDK/JRE/JVM之间的关系
> JDK Java Development ToolKit(Java开发工具包). JDK是整个JAVA的核心,包括了Java运行环境(Java Runtime Envirnment),一堆J ...
- day01--java基础编程:计算机基础知识 ,java语言概述,java开发环境搭建,eclipse概述,创建简单java项目,JDK JRE JVM的关系,java开发中的命名规范,编程风格
1 Day01–Java开发环境+HelloWorld 1.1 计算机基础知识 资料下载网址:刘沛霞 18600949004 code.tarena.com.cn tarenacode code_20 ...
- jre,jdk,jvm的关系
今天在用maven搭建项目工程的时候出错的原因竟然是因为使用了jre,而非jdk导致报错,这里就搜集了有关这方面的信息: JDK(Java Development Kit)是针对Java开发员的产品, ...
- JDK,JRE和JVM三者的关系以及java的运行机制,环境变量,三大版本,特点
JDK,JRE和JVM 1.JVM Java Virtual Machine是Java虚拟机,Java程序需要运行在虚拟机上,不同的平台有自己的虚拟机,因此Java语言可以实现跨平台. 所谓跨平台性, ...
- JDK,JRE,JVM三者的关系
JDK=JRE+Java的开发工具(javac.exe,java.exe,javadoc.exe) JRE=JVM+Java核心类库
最新文章
- 「Anaconda」取消终端命令行自动加载的conda(base)虚拟环境
- C++primer习题--第1章
- iOS开发人员不容错过的10大工具
- Intel Core Enhanced Core架构/微架构/流水线 (5) - 分支预测/指令预取
- sunplus 8202v iop源代码阅读笔记——2
- javaweb中服务器启动所执行的程序
- Window 通过cmd查看端口占用、相应进程、杀死进程等的命令
- 20169217 《Linux内核原理与分析》 第十一周作业
- kettle增加字段报错_【Kettle 多文件】Excel/MySQL文件传入解决方案
- selenium中CSS选择器定位
- 机器学习实战—FPGrowth算法的实现
- wps中怎么在奇数页的页眉中设置整本书的标题,而在偶数页中设置该章的标题,同时请问怎样修改页码的字体?
- Prior-based Domain Adaptive Object Detection for Hazy and Rainy Conditions
- 为你的TabBar添加Badge-感谢分享
- GTK:Gdk-CRITICAL **: IA__gdk_draw_pixbuf: assertion ‘GDK_IS_DRAWABLE (drawable)‘ failed
- python之具名元组
- 微信分享的各种大小限制
- 将MongoDB添加到windows服务中
- Unity学习笔记(一)~介绍以及入门
- 洛谷 P2768 珍珠项链
热门文章
- 单链表的合并算法_图解算法:单链表两两反转 | 眼睛会了手就会系列
- 累加求和a+aa+aaa+aa…a_过半深圳券商评级跃升4家维持在AA级
- python理论知识选择题_python基础知识练习题(二)
- linux中代码挂上n,Linux系统常用命令nl详解(示例代码)
- python期末复习卷_【期末复习卷A】六年级科学上册期末复习试题
- java中的基本小程序_12个用Java编写基础小程序经典案例(收藏篇)
- linux恢复硬盘工具,linux硬盘数据恢复工具
- java strim性能_Java代码性能优化总结
- git rebase --onto
- MySQL create