来源:博客园
作者:为何不是梦
链接: https://www. cnblogs.com/ibigboy/p/1 1184106.html
前些日子有朋友面试时被问到如题所示的问题,由于他之前没有准备到这些最最基础的知识,没有考虑过这个问题,所以被问到时竟一脸萌币,回答的不是很好。这道题主要考的是对 Java 基础知识的了解,有些同学可能已经忘了。所以现在我们一起来分析下。
JDK和JRE是什么?
在回答这个问题之前我们先来看看什么是JDK什么是JRE?以及JDK和JRE的关系。
我们看一下来自百度百科的解释:
JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。--百度百科
JRE是Java Runtime Environment缩写,指Java运行环境,是Sun的产品。运行JAVA程序所必须的环境的集合,包含JVM标准实现及Java核心类库。--百度百科
《深入理解Java虚拟机:JVM高级特性与最佳实践(第2版)》:
我们可以把Java程序设计语言、Java虚拟机、Java API 类库这三部分统称为 JDK(Java Development Kit),JDK 是用于支持 Java 程序开发的最小环境...另外,可以把 Java API 类库中的 Java SE API 子集和 Java 虚拟机这两部分统称为 JRE(Java Runtime Environment),JRE 是支持 Java 程序运行的标准环境。-《深入理解Java虚拟机:JVM高级特性与最佳实践(第2版)》
书中同样提到了Java 技术体系所包含的内容及 JDK 和 JRE 所涵盖范围:
![e01373cda7484daec57656545771a5a5.png](https://i-blog.csdnimg.cn/blog_migrate/d15bcc1edd6d459180f3655355e16cfa.jpeg)
(图片来源于网络:https://blog.csdn.net/bingyu0046/article/details/44103853)
根据如上所说,我们可以总结出如下图所示的 JDK 和 JRE 的关系图:
![ea5c24a4d853bc380a0cfd9ec453f4f5.png](https://i-blog.csdnimg.cn/blog_migrate/d2ba7e053edd332fe1fa271bf5d15d65.png)
也就是说JDK包含了JRE,这一点我们可以证实,在安装JDK的目录下找到JRE的文件夹:
![789031cc2e745ee0db9c67f6f411a6da.png](https://i-blog.csdnimg.cn/blog_migrate/e5f9512870191d7ebb8e536d967ad561.jpeg)
JDK(Java Development Kit)是我们学习 Java 首先要安装的软件,值得注意的是 JDK 安装完成之后,安装向导会询问你是否安装 JRE(Java Runtime Environment),还要不要安装呢?知道 JDK 和 JRE 是什么关系后回答这个问题就不难了吧。
也就是说,当你安装 JDK 完成后已经默认安装了 JRE ,因为安装完 JDK 肯定是要开发的吧,开发就要运行 Java 程序,所以 JDK 包含了 Java 的运行环境 JRE。如果你只是单纯的要运行 Java 程序而不进行开发、调试等,那么就只需要安装 JRE 就行了。
所以上文提到的问题,对于开发人员来说安装完JDK后就不需要再安装JRE了。
服务器上是否只安装JRE就可以了?
另外一个问题,既然如此,那么在服务器上是否只安装JRE就可以了?
理论上是可以的,但是有前提条件。
服务器上只安装JRE的前提:
- 发布到服务器上时所有文件都是编译好的文件,包括JSP文件
- 后期不在服务器上直接修改(因为导致修改后的文件未重新编译)
如果部署的项目都是编译后重新部署,不在服务器上直接修改的话是可以只安装 JRE 的。
注意:如果存在未编译的 Java 源文件,或者在服务器上修改源文件,服务器就需要安装 JDK。
在服务器上安装JDK的好处:
- 可以编译java文件,方便后期维护
- 保证JSP文件修改后稳定运行
综合考虑,为避免以后这样那样的麻烦事发生,服务器上还是安装JDK吧!毕竟项目后期维护才是主要的事情。
有了以上的分析,相信面试官再问你这样的问题你该知道怎么回答了吧。
更新=================================
首先,让不让评论是我的自由,我有这个权利。
其次,有人私信我说误导小白,长点脑子再说,我哪句话说一定要要求你一定要只装jre了??万事皆有可能,为什么就不能只装jre了,上面也分析了。再说了,小白能随便动服务器?给小白一个新的服务器从头搞起?开玩笑呢?别无脑喷了...
文章最后也说了建议安JDK
![eb40d910a6ab0d5decebc1dea98eeb65.png](https://i-blog.csdnimg.cn/blog_migrate/2f010f8f46a86538ef4fb659fb326517.png)
真看不见眼睛就捐了吧。我让你看不见,字调大了!
还有说jdk14都快出了,还在说jsp。你不用jsp别人就不用??