.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的关系相关推荐

  1. jdk jre jvm 关系

    很多朋友可能跟我一样,已经使用JAVA开发很久了,可是对JDK,JRE,JVM这三者的联系与区别,一直都是模模糊糊的. 今天特写此文,来整理下三者的关系. JDK : Java Development ...

  2. java-01 JAVA三大版本比较JDK、JRE、JVM 的关系

    1. java三大版本比较 1.1 java SE javaSE 是java标准版的简称,其定位是个人计算机应用(应用原生界面比较ugly) 全称:Java Platform Standard Edi ...

  3. Java:JDK、JRE和JVM的关系(图示详解,一眼就能看明白!)

    简介 JDK(Java Development Kit,Java开发工具包) JDK为Java应用程序提供了基本的开发和运行环境,是整个Java的核心,包括: 1.Java运行环境(JRE) 2.JD ...

  4. jdk jre jvm的关系

    http://blog.csdn.net/gaopeng0071/article/details/9914683 JDK : Java Development ToolKit(Java开发工具包).J ...

  5. JDK/JRE/JVM之间的关系

    > JDK Java Development ToolKit(Java开发工具包). JDK是整个JAVA的核心,包括了Java运行环境(Java Runtime Envirnment),一堆J ...

  6. day01--java基础编程:计算机基础知识 ,java语言概述,java开发环境搭建,eclipse概述,创建简单java项目,JDK JRE JVM的关系,java开发中的命名规范,编程风格

    1 Day01–Java开发环境+HelloWorld 1.1 计算机基础知识 资料下载网址:刘沛霞 18600949004 code.tarena.com.cn tarenacode code_20 ...

  7. jre,jdk,jvm的关系

    今天在用maven搭建项目工程的时候出错的原因竟然是因为使用了jre,而非jdk导致报错,这里就搜集了有关这方面的信息: JDK(Java Development Kit)是针对Java开发员的产品, ...

  8. JDK,JRE和JVM三者的关系以及java的运行机制,环境变量,三大版本,特点

    JDK,JRE和JVM 1.JVM Java Virtual Machine是Java虚拟机,Java程序需要运行在虚拟机上,不同的平台有自己的虚拟机,因此Java语言可以实现跨平台. 所谓跨平台性, ...

  9. JDK,JRE,JVM三者的关系

    JDK=JRE+Java的开发工具(javac.exe,java.exe,javadoc.exe) JRE=JVM+Java核心类库

最新文章

  1. 「Anaconda」取消终端命令行自动加载的conda(base)虚拟环境
  2. C++primer习题--第1章
  3. iOS开发人员不容错过的10大工具
  4. Intel Core Enhanced Core架构/微架构/流水线 (5) - 分支预测/指令预取
  5. sunplus 8202v iop源代码阅读笔记——2
  6. javaweb中服务器启动所执行的程序
  7. Window 通过cmd查看端口占用、相应进程、杀死进程等的命令
  8. 20169217 《Linux内核原理与分析》 第十一周作业
  9. kettle增加字段报错_【Kettle 多文件】Excel/MySQL文件传入解决方案
  10. selenium中CSS选择器定位
  11. 机器学习实战—FPGrowth算法的实现
  12. wps中怎么在奇数页的页眉中设置整本书的标题,而在偶数页中设置该章的标题,同时请问怎样修改页码的字体?
  13. Prior-based Domain Adaptive Object Detection for Hazy and Rainy Conditions
  14. 为你的TabBar添加Badge-感谢分享
  15. GTK:Gdk-CRITICAL **: IA__gdk_draw_pixbuf: assertion ‘GDK_IS_DRAWABLE (drawable)‘ failed
  16. python之具名元组
  17. 微信分享的各种大小限制
  18. 将MongoDB添加到windows服务中
  19. Unity学习笔记(一)~介绍以及入门
  20. 洛谷 P2768 珍珠项链

热门文章

  1. 单链表的合并算法_图解算法:单链表两两反转 | 眼睛会了手就会系列
  2. 累加求和a+aa+aaa+aa…a_过半深圳券商评级跃升4家维持在AA级
  3. python理论知识选择题_python基础知识练习题(二)
  4. linux中代码挂上n,Linux系统常用命令nl详解(示例代码)
  5. python期末复习卷_【期末复习卷A】六年级科学上册期末复习试题
  6. java中的基本小程序_12个用Java编写基础小程序经典案例(收藏篇)
  7. linux恢复硬盘工具,linux硬盘数据恢复工具
  8. java strim性能_Java代码性能优化总结
  9. git rebase --onto
  10. MySQL create