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

581 阅读9分钟

Matthew Tyson

作者:, 软件架构师。 |

关于我们

你需要了解的关于Java编程工具和API的一切,包括代码和例子。

JDK是构建Java应用程序的开发平台。了解不同的JDK版本,然后在你的开发环境中安装一个JDK并使用它来编译一个Java程序。

![Javaworld > JVM / JDK / JRE explainer series > Java Development Kit > write your code](https://images.idgesg.net/images/article/2019/03/javaworld_jvm_jdk_jre_explainer_java_development_kit_write_3x2_2400x1600_by_idg_oracle_vasabii_gettyimages-100790551-large.jpg?auto=webp&quality=85,70)

IDG / Oracle / Vasabii / Getty Images

目录

显示更多

Java开发工具包(JDK)是Java编程中使用的三个核心技术包之一,此外还有JVM(Java虚拟机)和JRE(Java运行时环境)。区分这三种技术并了解它们之间的联系很重要。

  • JVM是承载运行程序的运行时间。
  • JRE是Java的磁盘部分,用于创建JVM并将程序加载到其中。
  • JDK提供必要的工具来编写可以被JVM和JRE执行和运行的Java程序。

刚接触Java的开发者经常混淆Java开发工具包和Java运行时环境。区别在于,JDK是开发基于Java的软件的工具包,而JRE是运行Java代码的工具包。

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

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

A diagram of the JDK. IDG

图1.JDK的高层视图。

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

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

JDK 版本和软件包

在您的开发环境中设置 Java 就像下载 JDK 并将其添加到操作系统的系统路径中一样简单。 对于 Windows 和 macOS,Java 包括一个安装程序,它将为您完成这项工作。

当你下载JDK时,你需要选择你想使用的Java版本。Java 11最近挤掉了Java 8,成为最常用的版本。展望未来,似乎Java 17可能是下一个突出的版本。 Java保持向后兼容,所以我们就下载最新的版本。

在过去,你还必须选择一个Java包。这些是针对不同类型开发的JDK,如Java企业版(Java EE)、Java标准版(Java SE)和Java移动版(Java ME)。现在,企业版的Java库已经迁移到Jakarta EE,这个过程已经改变。你仍然会从Oracle或OpenJDK等实施者那里下载Java SE JDK。如果你需要对企业和云原生应用开发有用的额外工具,那么你可能想下载并安装Jakarta EE。在某些情况下,你可能不需要整个Jakarta EE平台。例如,如果你只需要一个JDK加Servlets,你可以使用标准的JDK加Tomcat,其中包括Servlet API

下载Java SE的JDK

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

A listing of available JDK packages.IDG

图2.可用的 JDK 包。

在你选择Java SE下载之前,花点时间看看其他选项。在 Java 厨房里有很多东西要做!

如何安装 JDK

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

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

安装 "开发工具"选项会给你提供JDK本身。安装源代码包含核心Java API中公共类的源。包括这个选项允许你在构建应用程序时引用源代码。第三个选项,Public 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. IDG

图 3.已安装的JDK的视图。

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

JDK内的JRE在你的命令行中添加了java 命令。你可以在命令行中输入java -version 来验证这一点,它应该返回你刚刚安装的 Java 版本。(在某些情况下,你必须重新启动你的系统,使你的系统路径的变化完全生效)。

安装了java 是件好事,但javac 呢?你将需要这个JDK组件来编译你的Java文件。

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

编译和运行一个Java程序

我们先用老式的方法--文本文件和控制台命令--来编译和运行一个Java程序。 这可以让我们很好地了解实际发生的情况。

第一步。编写一个简单的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版本中,你需要把命令的完整路径输入到你的命令外壳中,就像注释中的那一行。)

清单2.用JDK编译


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

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

第3步。运行.class文件

现在你应该看到Intro.class 文件和Intro.java 在同一目录下。

你可以通过键入来运行它。java Intro,这将导致清单3中所示的输出。注意,在输入这个命令时,你不包括.class

清单3.运行Intro.class


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

创建一个JAR文件并将其添加到你的classpath中

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 文件。你可以通过把它添加到你的classpath中并执行里面的程序来使用这个.jar ,如图所示。

清单5.将JAR添加到你的classpath中


java -cp intro.jar Intro

-cp 开关告诉Java将jar 添加到classpath中。对于这个小程序来说,一个.jar 文件比我们需要的要多,但随着程序规模的扩大和对第三方包的依赖,它们是不可或缺的。

集成开发环境中的JDK

集成开发环境(IDE)是一种软件,它为开发应用程序提供了一套有凝聚力的工具。可以把集成开发环境看作是一个可视化的操作系统,它包括文件浏览器和文本编辑器,以及代码完成和格式化等特定的开发功能。Eclipse、IntelliJ和NetBeans都是久经考验、功能强大的Java集成开发环境。 微软无处不在的Visual Studio Code(VS Code)Java应用开发的另一个有力竞争者

在Java开发中,IDE做的关键事情之一是管理编译。也就是说,集成开发环境在后台自动运行编译过程,这样你就不必不断地自己动手了。集成开发环境还能在你进行开发时提供逐一的反馈,即时捕捉编码错误。

你已经看到了 JDK 在命令行中的工作情况,那么现在让我们快速看看它在 Eclipse 中的工作情况。

Eclipse和JDK

安装Eclipse不在本指南的范围之内,但这是一个简单的过程。Eclipse像其他程序一样包括一个安装程序,你可以在这里找到适合你的操作系统的安装程序。

安装好Eclipse后,从菜单栏中打开Window项目,选择Preferences

在首选项窗口中,你会看到Java项目。打开它,在里面你会看到编译器项目。点击它将显示JDK的选项。

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

JDK options in Eclipse.IDG

图4.Eclipse中的JDK选项。

如前所述,你需要为你的项目选择正确的JDK版本。在引擎盖下,IDE 将运行 JDK 编译器,就像你从命令行中运行它一样。Eclipse IDE 也有自己的 JDK 实例。IDE为你管理JDK和JRE,这让你的生活变得更加轻松

Matthew Tyson是Dark Horse Group, Inc.的创始人他相信以人为本的技术。在不弹吉他的时候,Matt会去野外和哲学的腹地探险。自2007年以来,他一直为JavaWorld撰写文章。

Copyright © 2022 IDG通信公司版权所有。