43 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			43 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| # 解决jlink error指南
 | ||
| 
 | ||
| ## 现象
 | ||
| 
 | ||
| jlink时,如果出现如下错误,参考本文档
 | ||
| 
 | ||
| ```
 | ||
| "automatic module cannot be used with jlink"
 | ||
| ```
 | ||
| 
 | ||
| ## 解决方法:
 | ||
| 
 | ||
| 1. 为jar生成module-info.class
 | ||
| 
 | ||
| ```shell
 | ||
| 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目录,然后执行:
 | ||
| 
 | ||
| ```shell
 | ||
| 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
 | ||
| ```
 | ||
| 
 | ||
| 2. pom中添加依赖
 | ||
| 
 | ||
| ```xml
 | ||
| 
 | ||
| <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](https://tacosteemers.com/articles/java_jlink_automatic_module_cannot_be_used_with_jlink.html) | 
