JNotepad/libs/README.md

1.2 KiB
Raw Permalink Blame History

解决jlink error指南

现象

jlink时如果出现如下错误参考本文档

"automatic module cannot be used with jlink"

解决方法:

  1. 为jar生成module-info.class
jdeps --ignore-missing-deps --module-path <jar_dir_path> --add-modules <module_name --generate-module-info <out_dir_path> <jar_path>
javac --patch-module <module_name>=<jar_path> <module-info.java>
jar uf <jar_path> -C <module_name> <module-info.class>

以本次icu4j为例先将依赖的jar包copy到libs目录然后执行

jdeps --ignore-missing-deps --module-path libs --add-modules com.ibm.icu --generate-module-info libs/tmpOut libs/icu4j-73.2.jar
javac --patch-module com.ibm.icu=libs/icu4j-73.2.jar libs/tmpOut/com.ibm.icu/module-info.java
jar uf libs/icu4j-73.2.jar -C libs/tmpOut/com.ibm.icu module-info.class
  1. pom中添加依赖

<dependency>
    <groupId>com.ibm.icu</groupId>
    <artifactId>icu4j</artifactId>
    <version>73.2</version>
    <scope>system</scope>
    <systemPath>${project.basedir}/libs/icu4j-73.2.jar</systemPath>
</dependency>

Reference

  1. java_jlink_automatic_module_cannot_be_used_with_jlink