在Java 9中使用JLink的目的是什么?

在Java 9中使用JLink的目的是什么?

什么是JLink?

在Java 9中,一个新的工具JLink被引入,它可以方便地创建自定义运行时映像。该工具可以创建自己的JRE,这样开发人员可以仅包含应用程序所需的模块。

JLink的目的是什么?

Java应用程序通常依赖于Java Runtime Environment(JRE),即在用户计算机上安装运行Java程序所需的所有组件的集合。在Java SE 9之前,如果要在客户端的计算机上运行Java应用程序,则必须将整个JRE安装程序传输到该计算机上。这意味着您必须安装许多组件,包括许多不需要的组件,这将占用用户计算机上的空间并增加启动时间。此外,不同Java版本之间可能存在互操作性问题。这些问题使得使用JRE成为很大的负担。

为了解决这个问题,Java 9加入了JLink --?这是一个新工具,可以方便地创建自定义运行时映像。使用JLink,开发人员可以创建自己的JRE,其中仅包括需要的模块,从而避免了在用户计算机上安装未使用的组件的需要。

因此,JLink的目的是创建自定义运行时映像,并在其JRE中包含一个或多个模块以便应用程序可以在其中运行。

如何使用JLink

1. 准备开始使用JLink

在使用JLink之前,您需要安装Java Development Kit ( JDK ) ?9或更高版本。

安装完成后,您需要使用jdeps工具检查应用程序中使用的Java类和模块。该工具将确定应用程序中使用的模块并提供JLink所需的信息。

jdeps --list-deps MyApp.jar

您可以将MyApp.jar替换为应用程序JAR文件的实际名称。

2. 使用JLink创建运行时映像

一旦您确定了需要的模块,就可以使用JLink创建自定义运行时映像。以下是使用JLink创建运行时映像的基本命令:

jlink --module-path <modulesDir> --add-modules <module> --output <outputDir>

您需要将 <modulesDir> 替换为JDK安装目录中位于 jmods 子目录下的模块的目录名称。 <module> 是需要添加到JRE映像的模块。如果需要多个,可以使用逗号分隔。最后,<outputDir> 是JRE映像输出目录的名称。

例如,以下命令将创建自定义JRE映像,其中包含仅包含 java.base 模块的组件:

jlink --module-path <JavaHome>\jmods --add-modules java.base --output myImage

运行此命令时,将从JDK的 jmods 目录中加载 java.base 模块,并将其与该JRE映像一起使用。生成的自定义运行时映像将位于 myImage 目录中。

3. 运行应用程序

一旦您创建了自定义运行时映像,就可以使用它来运行应用程序,而不必安装完整的JRE。以下是演示如何运行应用程序的命令:

myImage\bin\java -jar MyApp.jar

此命令将启动应用程序,并使用您刚刚使用JLink创建的自定义JRE映像来运行它。

总结

JLink是Java开发人员用于在应用程序中创建自定义运行时映像的新工具。它通过仅包含需要的模块来减小应用程序的大小,并减少了Java应用程序安装过程中的复杂性。使用JLink,您可以大大简化Java应用程序的部署,并最大程度地减小其在用户计算机上的资源占用。

后端开发标签