这是一篇翻译文章。如果想要原地址请私信我。
JDK(Java Development Kit)是Java软件开发中的三大核心技术,另外两项是JVM(Java Virtual Machine)和JRE(Java Runtime Environment)。区分这三种技术并理解它们之间的关系非常重要。
JVM是运行Java程序的平台。 JRE用于创建JVM。开发人员可以使用JDK来编写在JVM上运行的Java程序。刚接触Java 的开发人员经常混淆JDK 和JRE。事实上,这些差异很容易理解。 JDK(Java Development Kit)用于开发Java软件,JRE(Java Runtime Environment)用于运行Java代码。
虽然JRE可以作为独立组件运行Java程序,但它也是JDK的一部分。同时,JDK还需要JRE,因为开发Java程序的目的是运行它们。
JVM、JRE、JDK关系
上图展示了JVM、JRE、JDK之间的关系。
JDK 的技术和日常定义:
技术定义:JDK是Java平台规范的实现,包括编译器和类库。日常定义:JDK是您下载并用于开发Java程序的软件包。所有JDK 都包含Java 编译器,JRE(用于运行Java 程序)除外。编译器是一种软件程序,它接受.java 文件(纯文本文件)并将其转换为可执行的.class 文件。稍后我们将介绍Java 编译器,但首先我们将向您展示如何在您自己的开发环境中下载并安装JDK。
一切从JDK安装开始
要将Java 开发环境安装到您的开发环境中,只需下载JDK 并将其位置添加到您的类路径中即可。下载JDK时,您需要考虑要使用哪个版本的Java。目前最流行的Java版本是Java8,但最新的Java版本已经达到Java10。可以选择Java10进行安装,因为Java具有向后兼容的特性,高版本的Java可以兼容低版本的(在实际项目中,项目组成员会使用相同版本的Java),因此可以使用更高版本的功能。低版本可能无法使用,影响开发效率。
JDK软件包
除了选择Java版本外,还必须选择Java软件包。 Java 软件包供开发人员在各种平台上使用。可用的Java软件包包括Java Enterprise Edition(Java EE Platform Enterprise Edition)、Java Standard Edition(Java SE Platform Standard Edition)和Java Platform Micro Edition(Java ME Platform Micro Edition)。
新开发人员通常不知道在他们的项目中使用哪些Java 包。所有JDK 版本通常都包含Java SE。当您下载Java EE 或Java ME 时,也会同时下载Java SE。例如:Java EE在标准平台版本的基础上添加了非常适合企业程序开发的组件,例如JavaBeans和ORM(对象关系映射)支持。
JDK为Java提供了编译器,因此所使用的JDK决定了您的Java代码可以使用的Java版本的功能。例如:如果您想使用仅在Java 8 中提供的新功能(例如Lambda 语法),则必须使用Java 8 或更高版本的JDK 进行编译。否则运行javac时会报语法错误。
下载JDK
要下载Java SE的JDK,您需要访问Oracle的官方下载页面。在那里您可以选择您需要下载的软件包。下面列出了所有可用的软件包。
Java软件包列表
如果您正在开发Web 程序,则应该下载Java EE 版本。 JDK 的Java EE 版本包含一个Java servlet 实现,它提供与HTTP 请求相关的功能。所有Java EE JDK 还需要Web 容器。 Glassfish 是Oracle 实现的Java EE Web 容器。其他流行的Web 容器包括Tomcat 和Jetty。
下载
安装JDK
JDK后,即可安装JDK。在安装过程中,经常会出现三个选项:开发工具(Developer Tools)、源代码(Source Code)和公共JRE(Public Execution Environment)。您可以选择安装其中一项或全部。
您可以通过安装【开发工具】来获取JDK。安装Source Code,查看JDK中各个类的实现原理。在开发过程中,使用JDK是非常有帮助的。 [公共JRE]允许其他程序运行JAV程序。
安装完JDK后,在安装目录中会看到以下内容:
Java安装目录
JDK命令行
安装JDK 后,您可以使用JDK 附带的一组Java 命令行。下图显示了JDK 提供的一些命令行工具。
Java命令行
以下是一些常用的Java 命令。
java命令。它可以用来运行Java程序。 javac 命令。它可以用来编译Java代码,将[.java]文件编译成可执行的[.class]文件。罐子命令。 jar命令可以打包每个用javac编译的[.class]文件。您可以选择是否压缩。
版权声明:本文转载于网络,版权归作者所有。如有侵权,请联系本站编辑删除。