JLink 使用教程:从入门到精通

简介: 本文提供了JLink工具的使用教程,包括入门、进阶和高级篇,涉及创建运行时镜像、添加模块、自定义启动器、压缩镜像、自定义运行时参数和配置文件等内容,旨在帮助用户创建独立的Java应用程序运行时环境。
1. 什么是 JLink?

JLink 是 JDK 自带的一个工具,用于创建和操纵自包含的运行时镜像。这意味着你可以将你的 Java 应用程序、依赖项和 JRE 打包成一个独立的可执行文件夹,里面自带java所需的东西,而无需依赖外部的 JRE。

2. 入门篇
2.1 安装 JDK

首先,确保你的系统上已经安装了 JDK。你可以从 Oracle 或 OpenJDK 下载并安装最新的 JDK 版本。

2.2 编写一个简单的 Java 程序

创建一个简单的 Java 程序,例如 HelloWorld.java

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello, World!");
    }
}
2.3 编译 Java 程序

使用 javac 编译你的程序:

javac HelloWorld.java
2.4 使用 JLink 创建运行时镜像

执行以下命令创建运行时镜像:

jlink --module-path $JAVA_HOME/jmods --add-modules java.base --output HelloWorldImage

这个命令会创建一个包含了 java.base 模块的运行时镜像,并将其输出到 HelloWorldImage 目录中。

2.5 运行应用程序

进入 HelloWorldImage/bin 目录,执行生成的可执行文件:

./java -m HelloWorld

你将看到输出:Hello, World!

3. 进阶篇
3.1 添加模块

如果你的应用程序有其他模块依赖,可以通过 --add-modules 选项将它们添加到运行时镜像中:

jlink --module-path $JAVA_HOME/jmods --add-modules java.base,java.logging,java.sql --output HelloWorldImage
3.2 自定义运行时镜像

通过 --launcher 选项可以为你的应用程序创建一个自定义启动器:

jlink --module-path $JAVA_HOME/jmods --add-modules java.base --output HelloWorldImage --launcher start=java.base/java

这将创建一个名为 start 的启动器,使你可以运行应用程序:

./start -m HelloWorld
3.3 压缩运行时镜像

使用 --compress 选项可以压缩运行时镜像,减小镜像的大小:

jlink --module-path $JAVA_HOME/jmods --add-modules java.base --output HelloWorldImage --compress 2

这里的 2 表示使用 ZIP 压缩,可以根据需要选择其他级别。

4. 高级篇
4.1 自定义运行时参数

使用 --vm 选项可以为运行时环境指定自定义参数:

jlink --module-path $JAVA_HOME/jmods --add-modules java.base --output HelloWorldImage --vm "args=-Xmx256m"
4.2 配置文件

通过创建一个配置文件(jlink.conf)可以进一步配置 JLink 的行为:

--module-path $JAVA_HOME/jmods
--add-modules java.base
--output HelloWorldImage
--launcher start=java.base/java
--compress 2
--vm "args=-Xmx256m"

然后运行:

jlink @jlink.conf
结语

通过本教程,你应该能够入门并掌握 JLink 工具的基本使用。随着你的实践和深入研究,你可以更灵活地使用 JLink 以满足特定项目的需求。希望这个教程能帮助你更好地利用 JLink 来创建自包含的 Java 应用程序。

目录
相关文章
|
前端开发 IDE 编译器
HBuilderX 最新安装使用教程,附详细图解,持续更新
HBuilderX 最新安装使用教程,附详细图解,持续更新
|
2月前
|
开发框架 Java Linux
libgdx的完整教程
本文概述了LibGDX作为一个跨平台的2D/3D游戏开发框架,以其强兼容性、高效性及全面支持游戏开发的多个模块,成为开发者的受欢迎选择。
102 2
libgdx的完整教程
|
4月前
|
开发工具 图形学 Android开发
从零开始的unity3d入门教程(一)----环境配置
该文章是《从零开始的Unity3D入门教程》系列的第一篇,详细介绍了Unity3D的环境配置过程,包括注册Unity账户、下载安装Unity Hub和Unity编辑器、配置许可证、创建Unity项目、下载安装Visual Studio 2022以及将Unity与Visual Studio相关联等步骤。
从零开始的unity3d入门教程(一)----环境配置
|
6月前
AutoLisp入门教程
AutoLisp入门教程
|
6月前
|
C++
新手小白第一次使用VisualStudio的简单配置教程
新手小白第一次使用VisualStudio的简单配置教程
|
7月前
|
Linux 数据安全/隐私保护 Windows
[使用教程]xftp5中文版怎么使用?
[使用教程]xftp5中文版怎么使用?
|
JavaScript 安全 前端开发
【超详细】Zod 入门教程
Zod 是一个以 TypeScript 为首的模式声明和验证库 ,弥补了 TypeScript 无法在运行时进行校验的问题 ,既可以用在服务端也可以运行在客户端,以保障 Web Apps 的类型安全
583 0
【超详细】Zod 入门教程
MVVMToolkit入门教程
MVVMLight已经停止维护,可以考虑MVVMToolkit来替代,MVVMToolkit官方文档两个框架的基本使用方法类似,下面介绍一下不同之处(建议查看一下上一篇关于MVVMLight的文章)。
|
Python Windows
最新最详细的Python开发环境搭建以及PyCharm的安装配置教程【图+文】(一)
本文介绍 Python 开发环境的安装,PyCharm 的安装(Professional版本,Community版本)
1058 0
最新最详细的Python开发环境搭建以及PyCharm的安装配置教程【图+文】(一)
下一篇
DataWorks