什么是JDK? Java开发工具包介绍

位置:首页>文章>详情   分类: Java教程 > 编程技术   阅读(294)   2023-06-26 07:54:18

Java Development Kit (JDK) 是 Java 编程中使用的三个核心技术包之一,另外两个是 JVM(Java 虚拟机)和 JRE(Java 运行时环境)。区分这三种技术并了解它们之间的联系非常重要:

  • 虚拟机 是承载运行程序的运行时。
  • JRE 是 Java 的磁盘部分,它创建 JVM 并将程序加载到其中。
  • JDK 提供了编写可由 JVM 和 JRE 执行和运行的 Java 程序所必需的工具。

刚接触 Java 的开发人员经常混淆 Java Development Kit 和 Java Runtime Environment。区别在于 JDK 是开发基于 Java 的软件的工具包,而 JRE 是运行的工具包Java 代码。

JRE 可以用作独立组件来简单地运行 Java 程序,但它也是 JDK 的一部分。 JDK 需要 JRE,因为运行 Java 程序是开发它们的一部分。

图 1 显示了 JDK 如何融入 Java 应用程序开发生命周期。

A diagram of the JDK.

在我们继续之前,让我们考虑一下 JDK 的技术和日常定义:

  • 技术定义:JDK是Java平台规范的实现,包括编译器和标准类库。
  • 日常定义:JDK 是您为了创建基于 Java 的应用程序而下载的软件包。

JDK 版本和包

在开发环境中设置 Java 就像下载 JDK 并将其添加到操作系统的系统路径一样简单。对于 Windows 和 macOS,Java 包含一个安装程序,可以为您执行此操作。

下载 JDK 时,需要选择要使用的 Java 版本。 Java 11 最近超过 Java 8 成为最常用的版本。展望未来,Java 17 可能是下一个重要版本。 Java 保持向后兼容性,所以我们只下载最新版本。

In the past, you also had to select a Java package. These were JDKs targeted for different types of development like Java Enterprise Edition (Java EE), Java Standard Edition (Java SE), and Java Mobile Edition (Java ME). Now that the enterprise Java libraries 已经迁移到 Jakarta EE, the process has changed. You will still download the Java SE JDK from an implementer like Oracle or OpenJDK. If you need 对企业和云原生应用程序开发有用的其他工具, then you will likely want to download and install Jakarta EE. In some cases, you might not need the entire Jakarta EE platform. For example, if you needed just a JDK plus servlets, you could use the standard JDK plus 雄猫, which includes the 小服务程序接口.

下载适用于 Java SE 的 JDK

在本次介绍中,我们将坚持使用 Java SE,以便我们可以专注于核心 JDK 类和技术。要下载 Java SE 开发工具包,请访问 Oracle 的官方下载页面。您将看到各种可用的 JDK 包,如图 2 所示。

A listing of available JDK packages.

在选择 Java SE 下载之前,请花点时间查看其他选项。爪哇厨房里有很多菜!

如何安装JDK

JDK 安装有两种方式:手动或安装程序。在手动安装中,您下载二进制文件、解压缩它们并将它们添加到路径中。这在所有操作系统中都很常见。您可能知道如何执行此类安装。

安装程序适用于 macOS 和 Windows。当您运行 JDK 安装程序时,您可以选择三个组件:开发工具、源代码和公共 JRE。您可以安装其中一个或全部。在这种情况下,只需选择默认值即可。

安装开发工具 选项可为您提供适当的 JDK。安装 源代码 包含核心 Java API 中公共类的源代码。包括此选项允许您在构建应用程序时引用源代码。第三个选项,公共 JRE,表明 JDK 和 JRE 是独立的实体:公共 JRE 可以被其他程序用来执行 Java 程序,并且可以独立于JDK。

继续安装所有三个组件并接受每个组件的默认设置。这样做意味着您的 JDK 和 JRE 将安装在操作系统的默认位置。在 Windows 上,它是 C:\Program Files\Java\jdk-*,如图 3 所示。(在旧版本的 Java 中,JDK 和 JRE 有单独的目录。在更多最近的版本,它们一起安装在 JDK 目录中。)

A view of the installed JDK.

两个关键的 Java 命令:java 和 javac

JDK 中的 JRE 将 java 命令添加到您的命令行。您可以通过进入命令外壳并键入 java -version 来验证这一点,这应该会返回您刚刚安装的 Java 版本。 (在某些情况下,您必须重新启动系统才能完全采用对系统路径的更改。)

安装 java 很好,但是 javac 呢?您将需要此 JDK 组件来编译您的 Java 文件。

javac 命令位于 /jdk 目录中,在最新版本的安装程序中将自动添加到路径 .... 某些 IDE 默认包含 Java 编译器。如果您愿意,通常可以将它们配置为使用特定的已安装版本。

编译并运行 Java 程序

我们将从以老式方式编译和运行 Java 程序开始——使用文本文件和控制台命令。这让我们很好地了解实际发生的事情。

步骤 1. 编写一个简单的 Java 程序

创建一个名为 Intro.java 的新文本文件,并将其放置在计算机上的某个位置,例如文档文件夹中。

接下来,添加清单 1 中的代码,这是一个非常简单的 Java 程序。

清单 1.Intro.java


public class Intro {

    public static void main(String[] args) {
        System.out.println("Welcome to the JDK!");
    }

}

步骤 2. 使用 JDK 编译

接下来,使用 JDK 编译器将您的文本文件转换为可执行程序。 Java 中的编译代码称为字节码,并带有 .class 扩展名。

您将使用 javac 命令,将 Intro.java 文件作为参数传递给命令。您将我们在清单 1 中创建的 Java 文件提供给 javac 命令。在我的系统上,它看起来像清单 2。(在旧的 Java 版本中,您需要在命令 shell 中键入命令的完整路径,如注释行中所示。)

清单 2. 使用 JDK 编译


javac Intro.java
//"C:\Program Files\Java\jdk-10.0.1\bin\javac.exe" Intro.java

这应该会导致编译成功。 javac 不会返回成功消息;它只会输出新文件。任何错误都将导致控制台输出。

步骤 3. 运行 .class 文件

您现在应该在与 Intro.java 相同的目录中看到 Intro.class 文件。

您可以通过键入以下内容来运行它:java Intro,这将产生如清单 3 所示的输出。请注意,您不包括 .class< /code> 键入此命令时。

清单 3. 运行 Intro.class


C:\Users\mtyson\Documents>java Intro
Welcome to the JDK!

创建一个 JAR 文件并将其添加到您的类路径

javac 是 JDK 的明星,但 /bin 目录包含您需要的其他工具。 javac 之后最突出的可能是 jar 工具。

JAR (.jar) 文件 是一组打包的 Java 类。一旦编译器创建了 .class 文件,开发人员就可以将它们放在一个 .jar 中,后者将它们压缩并构造成一个可预测的时尚。

让我们将 Intro.class 转换为 .jar 文件。

导航回您放置 Intro.java 的目录,然后键入您在清单 4 中看到的命令。

清单 4. 创建一个 JAR 文件


C:\Users\mtyson\Documents>"c:\Program Files\Java\jdk-10.0.1\bin\jar.exe" --create --file intro.jar Intro.class

现在您将在目录中看到一个 intro.jar 文件。您可以通过将 .jar 添加到您的类路径并在其中执行程序来使用它,如下所示:

清单 5. 将 JAR 添加到您的类路径


java -cp intro.jar Intro

-cp 开关告诉 Java 将 jar 添加到类路径中。 .jar 文件已经超出了这个小程序的需要,但随着程序规模的增长和对第三方包的依赖,它们是不可或缺的。

IDE 中的 JDK

An integrated development environment (IDE) is software that provides a cohesive set of tools for developing applications. Think of an IDE as a visual operating system that includes a file browser and text editor, along with capabilities specific to development like code completion and formatting. Eclipse、IntelliJ 和 NetBeans are all well-tested and powerful Java IDEs. Microsoft's ubiquitous 视觉工作室代码(VS 代码) is another Java 应用程序开发的有力竞争者.

在 Java 开发中,IDE 所做的一项关键工作是管理编译。也就是说,IDE 会在后台自动运行编译过程,因此您不必自己不断进行。 IDE 还可以在您进行过程中提供逐个播放的反馈,即时捕获编码错误。

您已经了解了 JDK 如何在命令行上工作,所以现在让我们快速了解一下它在 Eclipse 中的工作方式。

Eclipse 和 JDK

安装 Eclipse 超出了本指南的范围,但这是一个简单的过程。 Eclipse 像任何其他程序一样包含一个安装程序,您可以在这里找到适合您的操作系统的安装程序。

安装 Eclipse 后,从菜单栏中打开窗口 项并选择偏好

在“首选项”窗口中,您会看到 爪哇 项。打开它,您会在里面看到编辑器 项。单击它将显示 JDK 的选项。

图 4 显示了 Eclipse 中 JDK 选项的屏幕截图。

JDK options in Eclipse.

如前所述,您需要为您的项目选择正确的 JDK 版本。在后台,IDE 将运行 JDK 编译器,就像您从命令行运行它一样。 Eclipse IDE 也有自己的 JDK 实例。 IDE 为您管理 JDK 和 JRE,让生活更轻松!

地址:https://www.cundage.com/article/3296360-what-is-the-jdk-introduction-to-the-java-development-kit.html

相关阅读

基础设施即代码 vendor 缅甸语 is adding support for 爪哇 and YAML, as it looks to allow software developers to...
Java Development Kit (JDK) 是 Java 编程中使用的三个核心技术包之一,另外两个是 JVM(Java 虚拟机)和 JRE(Java 运行时环境)。区分这三种技术并了解...
A couple of weeks ago an anonymous Twitter account told the story of 一个几乎被遗忘的微软愚人节恶作剧, the 1996 s...
当应用程序开发人员或架构师的任务是探索容器化应用程序提供的可能性时,没有什么比红帽容器开发套件 (CDK) 更容易了。 Red Hat CDK 拥有本地 OSX、Linux 或 Windows ...
Jakarta EE 10, the latest version of the Eclipse Foundation 的企业 Java 平台, arrives today, emphasizi...
JetBrains has launched the Qodana code quality monitoring platform. Qodana integrates with the Je...
Gradle 7.0 是 Android 开发和其他地方使用的流行软件构建工具的最新版本,提供更快的增量构建以及对 Java 16 的支持。 随着 4 月 9 日推出的 Gradle 7.0 版...
Apache Tomcat is a long-lived, open source Java servlet container that implements core Java enter...
OpenJDK 的 Microsoft Build 现已普遍可用,提供免费的开源 Java 分发版,可以与 Oracle 的 Java 发布版 争夺企业软件开发人员的青睐。 自 4 月以来一直处...
Java 20 或 Java Development Kit (JDK) 20 是标准 Java 的下一个计划版本,现已功能齐全。正式标记为发布的六个功能处于孵化或预览阶段。这些包括作用域值、记...