如何使用 jlink 将外部库添加到自定义运行时映像?
How to add external libraries to custom runtime image using jlink?
我想将我的项目所需的外部库添加到 自定义 运行时间图像。
我在我的项目中使用了以下外部库:vlcj.jar、vlcj-javafx.jar
为了vlcj.jar工作我还需要添加外部库:jna.jar, jna-platform.jar, vlcj-natives.jar
如果我重写我的应用程序以便不需要使用 vlcj.jar 和 vlcj-javafx.jar,那么自定义 运行time 图像创建行如下所示:
jlink --no-header-files --no-man-pages --compress=2 --strip-debug --module-path 'path/to/javafx-jmods-15.0.1' --add-modules javafx.controls,javafx.web --output /path/to/RuntimeImage
然后我创建我的应用程序的 jar:
cd path/to/myapp
jar cvfe path/to/myApp.jar MainClass *.*
然后我将 myApp.jar 添加到 RuntimeImage 和 运行 应用:
cd path/to/RuntimeImage
path/to/RuntimeImage/bin/java -jar myApp.jar
应用程序启动。东西不错。
唯一的缺点是它在没有 VLCJ 的情况下也能正常工作。
如何将外部 VLCJ 库添加到 自定义 运行 时间图像 和 运行 我的应用程序?
自定义 运行time 图像不支持自动模块(非模块 jar),因此您在 jlink
定义类路径的图像中没有任何依赖 jar 运行 vlc.
您可以在自己的 jar 中编辑 META-INF\MANIFEST.MF
以指定类路径,以便可以从您 运行 java -jar
:
所在的同一目录中读取额外的 jar
Class-Path: vlcj.jar vlcj-javafx.jar jna.jar jna-platform.jar vlcj-natives.jar
或者使用显式类路径为您的应用程序切换到标准启动:
path/to/RuntimeImage/bin/java -cp myApp.jar:vlcj.jar:vlcj-javafx.jar:jna.jar:jna-platform.jar:vlcj-natives.jar your.MainClass
我想将我的项目所需的外部库添加到 自定义 运行时间图像。
我在我的项目中使用了以下外部库:vlcj.jar、vlcj-javafx.jar
为了vlcj.jar工作我还需要添加外部库:jna.jar, jna-platform.jar, vlcj-natives.jar
如果我重写我的应用程序以便不需要使用 vlcj.jar 和 vlcj-javafx.jar,那么自定义 运行time 图像创建行如下所示:
jlink --no-header-files --no-man-pages --compress=2 --strip-debug --module-path 'path/to/javafx-jmods-15.0.1' --add-modules javafx.controls,javafx.web --output /path/to/RuntimeImage
然后我创建我的应用程序的 jar:
cd path/to/myapp
jar cvfe path/to/myApp.jar MainClass *.*
然后我将 myApp.jar 添加到 RuntimeImage 和 运行 应用:
cd path/to/RuntimeImage
path/to/RuntimeImage/bin/java -jar myApp.jar
应用程序启动。东西不错。
唯一的缺点是它在没有 VLCJ 的情况下也能正常工作。 如何将外部 VLCJ 库添加到 自定义 运行 时间图像 和 运行 我的应用程序?
自定义 运行time 图像不支持自动模块(非模块 jar),因此您在 jlink
定义类路径的图像中没有任何依赖 jar 运行 vlc.
您可以在自己的 jar 中编辑 META-INF\MANIFEST.MF
以指定类路径,以便可以从您 运行 java -jar
:
Class-Path: vlcj.jar vlcj-javafx.jar jna.jar jna-platform.jar vlcj-natives.jar
或者使用显式类路径为您的应用程序切换到标准启动:
path/to/RuntimeImage/bin/java -cp myApp.jar:vlcj.jar:vlcj-javafx.jar:jna.jar:jna-platform.jar:vlcj-natives.jar your.MainClass