编程语言
首页 > 编程语言> > 自包含的应用程序,内置Java

自包含的应用程序,内置Java

作者:互联网

我已经看过几篇在Java 9中简要提到自包含应用程序的在线演示文稿,但我有一个问题需要我解决.

使用新模块系统,您现在只允许包含运行应用程序所需的最少代码.但是,希望运行应用程序的系统是否仍需要JRE,或者是否可以包含在程序中的基本模块中?

我怀疑它是后者,因为下载最新版Java的页面(here)仍显示版本8_151.

TL; DR – 使用Java 9,是否可以创建一个可以在没有安装JRE / Java的系统上执行的自包含可执行文件?

解决方法:

JLINK

是的,这可能是with jlink(JEP 282),但是您的所有代码和依赖项都需要是模块化JAR(即带有module-info.class的JAR).它的工作原理如下:

jlink
    --module-path $JAVA_HOME/jmods:mods
    --add-modules your.app
    --launcher launch-app=your.app
    --output your-app-image

详细:

> –module-path列出包含模块的文件夹 – 这需要包含您要使用的JDK附带的平台模块(在$JAVA_HOME / jmods中)和您的应用程序模块(mods)
> –add-modules命名您希望运行时映像包含的模块 – 包含其所有(它们的)传递依赖项
> – 启动器是可选的,但非常方便;它创建了一个特定于操作系统的启动器(例如Windows上的.bat),它具有启动指定模块的给定名称(launch-app)(your.app;在这种情况下,假设为其定义了主类)
> –output指定创建运行时映像的位置

标签:java-module,java,java-9,self-contained
来源: https://codeday.me/bug/20191004/1854146.html