java - 启动层初始化时出错 java.lang.module.FindException: Module {"module.name"} not found
问题描述
在我们开始之前,这里有一些重要的信息:
- 主要目标:创建我的项目的 jar 可执行文件(使用 gradle 模块化项目很痛苦)
- 我使用 gradle 作为依赖管理
- 我有一个模块化项目(使用单个 modules-info.java 文件)
- 标题中列出的错误消息只有在插入作为本文第一个代码示例提供的代码后才能检索到。实现此代码的原因是为了完成创建我的项目的 jar 可执行文件的步骤。
每次我运行任何 gradle 任务(例如构建、运行、jpackage 等)时,我都会收到此错误:
Error occurred during initialization of boot layer java.lang.module.FindException: Module projects not found
如您所见,我已将“项目”设置为我的主要模块。
从错误和一些研究来看,问题的最可能原因是编译器由于某种原因没有将“项目”识别为我的主要模块(但不要解决这个问题,这只是我的猜测)。以下是一些可能有用的代码:
mainClassName='projects.Main.Main'
jar {
manifest {
attributes "Main-Class": "$mainClassName"
}
from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } }
}
application{
mainClassName("projects.Main.Main")
mainModule.set("projects")
applicationDefaultJvmArgs = [
// more than 20 JVM arguments listed here
]
}
是的,我的 mainModule.set() 与我的 module-info.java 模块名称(即“项目”)同名
那么,基于所有这些,对我为什么会收到此错误有任何想法吗?
提前致谢!
PS:this stackoverflow post可能会有所帮助,因为它有一张我当前模块和目录配置的图片
解决方案
推荐阅读
- python - 在python中将二维数组添加到字典中
- postgresql - Postgres - 是否可以在不加倍时间的情况下以两个不同的顺序提取相同的数据?
- java - 将光标导航到文本区域(JavaFX)
- configuration - 如何访问 privateRuntimeConfig 以与 nuxt/axios 模块一起使用
- mongodb - MongoDB聚合:条件聚合阶段
- wso2 - WSO2 Identity Server 5.10 中的 SaaS 服务提供商的电子邮件 OTP 身份验证失败
- time - BluePrism:创建时间戳,包括毫秒
- i3 - dwm 可以处理一个接一个按下的键绑定序列吗?
- java - redis 回调会在 redis 中执行,而不是在我的程序中执行吗?
- python - 由moviepy生成的mp4用tweepy没有声音