JavaDevelopmentKit(JDK)与JVM(JavaVirtualMachine)和JRE(JavaRuntimeEnvironment)是Java编程中使用的三大核心技术包之一。区分这三种技术并了解它们之间的联系很重要:JVM是托管正在运行的程序的运行时。JRE是Java的磁盘部分,它创建JVM并将程序加载到其中。JDK提供了编写可由JVM和JRE执行和运行的Java程序所需的工具。刚接触Java的开发人员经常将JavaDevelopmentKit与JavaRuntimeEnvironment混淆。不同的是,JDK是开发基于Java的软件的工具包,而JRE是运行Java代码的工具包。JRE可以作为一个独立的组件来简单地运行Java程序,但它也是JDK的一部分。JDK需要JRE,因为运行Java程序是开发它们的一部分。图1显示了JDK如何融入Java应用程序开发生命周期。图1.JDK的高级视图。在继续之前,让我们考虑一下JDK的技术和日常定义:技术定义:JDK是Java平台规范的实现,包括编译器和标准类库。日常定义:JDK是您下载用于创建基于Java的应用程序的包。JDK版本和包在开发环境中设置Java与下载JDK并将其添加到操作系统的系统路径一样简单。对于Windows和macOS,Java包含一个可以为您执行此操作的安装程序。下载JDK时,需要选择要使用的Java版本。Java11最近超过Java8成为最常用的版本。展望未来,Java17似乎很可能成为下一个重大版本。Java保持向后兼容性,所以我们只下载最新版本。过去,您还必须选择Java包。这些JDK针对不同类型的开发,例如Java企业版(JavaEE)、Java标准版(JavaSE)和Java移动版(JavaME)。现在,企业Java库已迁移到JakartaEE,流程发生了变化。您仍然需要从Oracle或OpenJDK等实施者那里下载JavaSEJDK。如果您需要对企业和云原生应用程序开发有用的其他工具,那么您可能需要下载并安装JakartaEE。在某些情况下,您可能不需要整个JakartaEE平台。例如,如果您只需要JDK和servlet,则可以使用标准的JDK和Tomcat,其中包括ServletAPI。下载适用于JavaSE的JDK我们将坚持使用JavaSE进行介绍,以便我们可以专注于核心JDK类和技术。要下载JavaSE开发工具包,请访问Oracle的官方下载页面。您将看到各种可用的JDK包,如图2所示。图2.可用的JDK包。在选择JavaSE下载之前,请花点时间查看其他选项。JavaKitchen中有很多烹饪方法!如何安装JDK有两种方法可以安装JDK:手动或使用安装程序。在手动安装中,您下载二进制文件、解压缩它们并将它们添加到您的路径中。这在所有操作系统中都很常见。您可能知道如何执行此类安装。安装程序适用于macOS和Windows。当您运行JDK安装程序时,您可以选择三个组件:开发工具、源代码和公共JRE。您可以安装其中一个或全部。在这种情况下,只需选择默认值即可。安装DevelopmentTools选项可为您提供正确的JDK。安装源代码包含核心JavaAPI中公共类的源代码。包含此选项允许您在构建应用程序时引用源代码。第三个选项PublicJRE,表示JDK和JRE是独立的实体:publicJRE可以被其他程序用来执行Java程序,可以和JDK分开安装。继续安装所有三个组件并接受每个组件的默认值。这样做意味着您的JDK和JRE将安装在操作系统的默认位置。在Windows上,这是C:\ProgramFiles\Java\jdk-*,如图3所示。(在旧版本的Java中,JDK和JRE有单独的目录。在新版本中,它们一起安装在JDK目录中.)图3.已安装JDK的视图。Java的两个关键命令:java和javacJDK中的JRE将java命令添加到命令行中。您可以通过输入命令shell并键入java-version来验证这一点,这应该会返回您刚刚安装的Java版本。(在某些情况下,您必须重新启动系统才能完全采用系统路径的更改。)Java安装了,但是javac呢?您将需要此JDK组件来编译您的Java文件。javac命令位于/jdk目录中,在最新版本的安装程序中会自动添加到该路径中。一些IDE默认包含Java编译器。如果您愿意,通常可以将它们配置为使用特定的已安装版本。编译和运行Java程序我们将从以老式方式编译和运行Java程序开始——使用文本文件和控制台命令。这让我们对实际发生的事情有了一个很好的了解。步骤1.编写一个简单的Java程序来创建一个新的文本文件,将其命名为Intro.java并将其放置在您的计算机上的某个位置,例如您的Documents文件夹。接下来,添加清单1中的代码,这是一个非常简单的Java程序。清单1.Intro.javapublicclassIntro{publicstaticvoidmain(String[]args){System.out.println("WelcometotheJDK!");}}步骤2.使用JDK编译接下来,使用JDK编译器将您的文本文件转换为可执行程序。Java中编译后的代码称为字节码,并具有.class扩展名。您将使用javac命令,将Intro.java文件作为参数传递给该命令。您将我们在清单1中创建的Java文件提供给javac命令。在我的系统上,它看起来像清单2。(在旧的Java版本中,您需要在命令shell中键入命令的完整路径,如注释行所示。)清单2.使用JDKIntro.java编译javac//"C:\ProgramFiles\Java\jdk-10.0.1\bin\javac.exe"Intro.java这应该会导致编译成功。javac不会返回成功消息;它只会输出新文件。任何错误都将导致控制台输出。第3步:运行.class文件您现在应该位于Intro.class和Intro.java中。您可以通过键入以下内容来运行它:javaIntro,这将产生如清单3所示的输出。请注意,在键入此命令时不包括.class。清单3.运行Intro.classC:\Users\mtyson\Documents>javaIntroWelcometotheJDK!创建一个JAR文件并将其添加到您的类路径中。javac是JDK的明星,但/bin目录包含所需的其他工具。可能在javac之后最突出的是jar工具。JAR(.jar)文件是一组打包的Java类。编译器创建.class文件后,开发人员可以将它们放在一起,.jar以可预测的方式压缩和构建它们。让我们将Intro.class转换为.jar文件。导航回您放置Intro.java的目录,并输入您在清单4中看到的命令。清单4.创建一个JAR文件C:\Users\mtyson\Documents>"c:\ProgramFiles\Java\jdk-10.0.1\bin\jar.exe"--create--fileintro.jarIntro.classnow你会在目录中看到一个文件intro.jar。您可以通过将.jar添加到类路径并在其中执行程序来使用它,如下所示:清单5.将JAR添加到您的类路径java-cpintro.jarIntro-cp开关告诉Java将jar添加到类路径。对于这个小程序,一个.jar文件是远远不够的,但是随着程序规模的增长和对第三方包的依赖,它们是必不可少的。IDE中的JDK集成开发环境(IDE)是为开发应用程序提供一组内聚工具的软件。将IDE视为一个可视化操作系统,其中包括文件浏览器和文本编辑器,以及特定于开发的功能,如代码完成和格式化。Eclipse、IntelliJ和NetBeans都是经过充分测试且功能强大的JavaIDE。Microsoft无处不在的VisualStudioCode(VSCode)是Java应用程序开发的另一个重要竞争者。在Java开发中,IDE所做的一项关键工作是管理编译。即IDE在后台自动运行编译过程,不用你自己不停地编译。IDE还随时提供回放反馈,以即时捕获编码错误。现在您已经了解JDK如何从命令行工作,让我们快速了解一下它在Eclipse中的工作方式。Eclipse和JDK安装Eclipse不在本指南的范围内,但它是一个简单的过程。Eclipse像任何其他程序一样包含一个安装程序,您可以在此处找到适用于您的操作系统的安装程序。安装Eclipse后,从菜单栏中打开Window项并选择Preferences。在首选项窗口中,您将看到Java项。打开它,在里面你会看到Compiler项目。单击它将显示JDK的选项。图4显示了Eclipse中JDK选项的屏幕截图。图4.Eclipse中的JDK选项。如前所述,您需要为您的项目选择正确的JDK版本。在后台,IDE将运行JDK编译器,就像您从命令行运行它一样。EclipseIDE也有自己的JDK实例。IDE为您管理JDK和JRE,让生活更轻松!原标题:什么是JDK?Java开发工具包介绍
