java - 如何将 jlink 与自动化库一起使用
问题描述
我遇到了一个无法jlink
用于编译的问题,现在我知道出了什么问题:jlink
无法编译自动化模块,因为它们的名称不稳定。有解决方法或解决方法吗?以下是我的代码的相关部分:
模块信息.java
module org.example {
requires MathParser.org.mXparser;
exports org.example;
}
pom.xml
...
<dependency>
<groupId>org.mariuszgromada.math</groupId>
<artifactId>MathParser.org-mXparser</artifactId>
<version>4.4.2</version>
</dependency>
...
主.java
...
import org.mariuszgromada.math.mxparser.*;
...
使用 编译时jlink
,它会给出以下错误消息:
Required filename-based automodules detected. Please don't publish this project to a public artifact repository!
这个问题没有重复,因为它还没有得到回答。建议的问题没有得到修复或解决方法。它仍然回答了技术问题:“检测到所需的基于文件名的自动模块”是什么。警告是什么意思?
解决方案
不,您的情况没有解决方法。jlink
不支持自动模块(即使是稳定的名称也无济于事)。您需要先将您的自动模块转换为显式模块。好消息是您不必重新编译您的库。您可以生成一个模块声明,jdeps --generate-module-info
然后将其注入 JAR。这在这个问题中有所描述。
推荐阅读
- python - 尝试在 bestbuy.com 上将商品添加到购物车时出现 Python Selenium 错误
- google-sheets - 在条件格式中具有多个范围的 Vlookup
- javascript - 为数组的单个字符添加闪烁效果
- docker - 为什么 maven dependency:go-offline 不阻止重新下载?
- python - 如何在给定一名员工的 ID 号的情况下递归地跟踪员工层次结构并找到在其下工作的所有员工?
- python - 单击鼠标后从屏幕上删除 pygame 精灵
- python - SQLalchemy 使用 ORM 选择结果行仅包含内存位置
- python-3.x - PyQt5在QTableview中拖拽导致选中行消失
- mysql - 单行的 SQL 视图(带有 where 子句)
- c++ - 在 .h 和 .cpp 文件中拆分类定义