JDK 与 JRE 之间的区别是什么?
“二哥,之前的文章里提到 JDK 与 JRE,说实在的,这两个概念把我搞得晕乎乎的,你能再给我普及一下吗?”三妹咪了一口麦香可可奶茶后对我说。
“三妹,不要担心,二哥这篇文章一定会让你把它们搞得一清二楚。确实有不少初学的小伙伴对这两个概念很困惑,我当年也困惑了很久。”说完最后这句话,我脸上忍不住泛起了一阵羞涩的红晕。
01、JDK
JDK 是 Java Development Kit 的首字母缩写,是提供给 Java 程序员的开发工具包,换句话说,没有 JDK,Java 程序员就无法使用 Java 语言编写 Java 程序。也就是说,JDK 是用于开发 Java 程序的最小环境。
想要成为一名 Java 程序员,首先就需要在电脑上安装 JDK。当然了,新版的 Intellij IDEA(公认最好用的集成开发环境)已经支持直接下载 JDK 了。
并且支持下载不同版本的 JDK,除了 Oracle 的 OpenJDK,还有社区维护版 AdoptOpenJDK,里面包含了目前使用范围最广的 HotSpot 虚拟机。
如果下载比较慢的话,可以直接在 AdoptOpenJDK 官网上下载。
如果还是比较慢的话,通过 Oracle 官网下载吧!
https://www.oracle.com/java/technologies/javase-jdk11-downloads.html
JDK 安装成功后,就可以编写 Java 代码了,小伙伴们可以参照上一篇文章《Hello World》。
JDK 包含了 JRE,同时还包含了编译 Java 源码的编译器 javac,以及其他的一些重要工具:
- keytool:用于操作 keystore 密钥;
- javap:class 类文件的最基础的反编译器;
- jstack:用于打印 Java 线程栈踪迹的工具;
- jconsole:用于监视 Java 程序的工具;
- jhat:用于 Java 堆分析的工具
- jar:用于打包 Java 程序的工具;
- javadoc:用于生成 Java 文档的工具;
02、JRE
JRE 是 Java Runtime Environment 的首字母缩写,是提供给 Java 程序运行的最小环境,换句话说,没有 JRE,Java 程序就无法运行。
Java 程序运行的正式环境一般会选择 Linux 服务器,因为更安全、更高效、更稳定。我们只需要在 Linux 服务器上安装 JRE 就可以运行 Java 程序,而不必安装 JDK,因为我们不需要在服务器上编译和调试 Java 源代码。
刚好我有一台闲置的阿里云服务器,这里就给小伙伴们演示一下 JRE 的安装过程。
第一步:使用以下命令列出服务器上可以安装的 Java 环境:
yum list java*
可以看到有这么一些(只列出 Java 11 的部分——最近一个 LTS 版本):
其中 JRE 为 java-11-openjdk.x86_64,JDK 为 java-11-openjdk-devel.x86_64。
第二步,使用以下命令安装 JRE:
yum install java-11-openjdk.x86_64
第三步,使用以下命令测试是否安装成功:
java -version
如果出现以下结果,则表明安装成功:
由于 JRE 中不包含 javac,所以 javac -version
的结果如下所示:
那既然服务器上的 JRE 环境已经 OK 了,那我们就把之前的“Hello World”程序打成 jar 上传过去,让它跑起来。
第一步,Maven clean(对项目清理):
第二步,Maven package(对项目打包):
可以在 Run 面板中看到以下信息:
说明项目打包成功了。
第三步,使用 FileZilla 工具将 jar 包上传到服务器指定目录。
第四步,使用 iTerm2 工具连接服务器。
第五步,执行以下命令:
java -cp TechSister-1.0-SNAPSHOT.jar com.itwanger.five.HelloWorld
可以看到以下结果:
“搞定了,三妹,今天我们就学到这吧。”转动了一下僵硬的脖子后,我对三妹说,“开发环境需要安装 JDK,因为既需要编写源代码,还需要打包和测试;生产环境只需要安装 JRE,因为只需要运行编译打包好的 jar 包即可。”
“好的,二哥,能把你的服务器账号密码给我一下吗,我想上去测试一把。”三妹似乎对未来充满了希望,这正是我想看到的。
“没问题,随便倒腾。”