JDK:Java Development Kit
Java开发包
JRE:Java Runtime Environment
Java运行环境

从名字就能看出,JRE是JDK的子集,举个通俗的例子,如果只是想运行.class文件,JRE就够了。但是要想编写运行.java文件,就得要JDK。具体JDK和JRE在组成上的区别可以见下图:

Java技术体系图:

除了JRE之外,JDK还提供了Java编译器(javac),开发工具比如 Javadoc,Java调试用的Jconsole等等。

总体来看:JDK > JRE > JVM。

另外,一般解压下载的Java包会有两个JRE:与JDK平行的JRE和JDK目录下的JDK,二者有什么区别呢?

其实二者基本相同,jdk有jre是因为:

①  jdk是开发包,在开发中肯定要运行调试,从逻辑上讲,jdk中包含jre也是必要的;

②  jdk的很多命令比如javac等,本身也是由java写的应用程序,其运行需要jre环境的支持;

③ 单独的jre比jdk下的jre多了服务端的JVM,而独立的jre是安装时候就默认添加进系统的环境变量中的,jdk下的jre需要手动添加。

有一点要注意一下,其实开篇说的“只运行.class文件就只需要JRE”很容易产生一个误区:只要我只打算运行Java程序或应用,不进行任何Java开发,就不需要安装jdk。这不是绝对的,一方面,想要运行的Java代码可能还未编译,即第一次转化为.class文件还没有完成(当然这种情况很少);还有一种情况,例如,使用JSP部署Web应用程序,那么从技术上讲,这只是在应用程序服务器中运行Java程序,但是应用程序服务器会将 JSP 转换为 Java servlet,而servlet本质还是.java代码,仍然需要使用 JDK 来编译成class文件才能运行。

参考:JDK 和 JRE

Java面试基础问题之(一)—— JDK和JRE区别相关推荐

  1. java gui中文变方块_150道Java面试基础题(含答案)

    1)Java 中能创建 volatile 数组吗? 能,Java 中可以创建 volatile 类型数组,不过只是一个指向数组的引用,而不是整个数组.我的意思是,如果改变引用指向的数组,将会受到 vo ...

  2. java面试基础题整理(二)

    java面试基础题整理 文章目录 java面试基础题整理 前端技术(HTML.CSS.JS.JQuery等) 在js中怎么样验证数字? js中如何给string这个类型加方法? 谈谈js的定时器? 请 ...

  3. Java面试基础知识III

    Java面试基础知识: 1.C++或Java中的异常处理机制的简单原理和应用. 当JAVA 程序违反了JAVA的语义规则时,JAVA虚拟机就会将发生的错误表示为一个异常.违反语义规则包括2种情况.一种 ...

  4. Java面试基础篇之集合

    文章目录 你知道的集合都有哪些? 哪些集合是线程安全的? Collection 集合类和数组有什么不同? Collection和Collections有什么区别? 如何确保一个集合不能被修改? Lis ...

  5. java面试基础(三)

    java面试基础(三) 十.设计模式 88.说一下你熟悉的设计模式? 89.简单工厂和抽象工厂有什么区别? 90.为什么要使用 spring? 91.解释一下什么是 aop? 92.解释一下什么是 i ...

  6. java jdk的作用_jdk的作用是什么?jdk和jre区别介绍

    之前给大家介绍了jdk是什么意思,那么接下来要给大家讲到的就是jdk的作用以及jdk和jre之间的区别,一起来了解一下吧! 一.jdk的作用是什么? jdk是java的开发编译环bai境. 它里面包含 ...

  7. JDK和JRE区别 --学而不思则罔

    JDK和JRE区别 JDK里面的工具也是用JAVA编写的,它们本身运行的时候也需要一套JRE,如C:\Program Files\Java\jdk1.5.x\目录下的JRE.而C:\Program F ...

  8. Eclipse中JDK与JRE区别

    目录(?)[-] JDK与jRE的区别 eclipse中的JDK与JRE JDK与jRE的区别 JDK(Java development kit):Java 开发工具,包括一系列java命令,如jav ...

  9. Java面试知识点(全)- Java面试基础部分一

    Java面试知识点(全) :https://nanxiang.blog.csdn.net/article/details/130640392 Java基础 语法基础 面向对象 封装 利用抽象数据类型将 ...

  10. java面试基础_Java面试基础

    1.面向对象和面向过程的区别? 面向过程:面向过程性能比面向对象高 面向对象:面向对象易维护.易复用.易扩展 2.Java 语言有哪些特点? 简单易学.面向对象(封装,继承,多态).平台无关性( Ja ...

最新文章

  1. 在asp.net中使用客户端脚本
  2. 从企业发展的四个问题,理解OKR的价值所在
  3. scrapy-splash抓取动态数据例子八
  4. 博士申请 | 香港科技大学陈浩教授招收AI医疗方向全奖博士/博后/实习生
  5. jQuery常见的选择器操作运算符
  6. P6793-[SNOI2020]字符串【广义SAM,贪心】
  7. 隐藏虚拟键盘,解决键盘挡住UITextField问题
  8. 斐波那契数列(Fibonacci)递归和非递归实现
  9. 生成小程序二维码传参scene的问题
  10. VOC2007.annotation文件解读
  11. 雷达通信术语中英文对照
  12. WPS格式转换成Word的方法
  13. ZCMU 1919: kirito's 星爆气流斩【01背包的二进制优化】
  14. java里 输出101-150中的素数
  15. 面向对象分析与设计--遛狗玩
  16. CLI 什么是 command-line interface
  17. GNS与WireShark安装流程
  18. erp系统软件到底是干嘛用的?
  19. VSCODE下载速度慢的问题
  20. spring boot 獲取屏幕寬度_Redmi K30S至尊纪念版的屏幕有多好?有些吓人

热门文章

  1. 银联卡跨行业务地区代码标准JSON版
  2. 远程接入产品极通EWEBS给客户带来的价值
  3. c语言小车路径规划算法,基于路径规划的室内小车定位系统
  4. 织梦dede仿站模板标签大全(最全)附带仿站工具
  5. 基于Python和OpenCV的图像目标检测及分割
  6. instagram 爬虫 2021,下载可用
  7. 网站做渗透测试服务的步骤
  8. 线性代数 第四章 线性方程组 知识点总结(Jeff自我感悟)
  9. 期货反向跟单这个模式、大家目前都耳熟能详,操作原理也算是人尽皆知了!
  10. 打开FTP server或者wftpd32提示 unknow error 10013