启动层初始化时出错 java.lang.module.FindException: Module {"module.name"} not found

时间:2021-05-05 17:27:22

标签: java gradle jar java-platform-module-system module-info

在我们开始之前,这里有一些重要信息:

  1. 主要目标:为我的项目创建一个 jar 可执行文件(使用 gradle 模块化项目很痛苦)
  2. 我使用 gradle 作为依赖管理
  3. 我有一个模块化项目(使用单个 modules-info.java 文件)
  4. 标题中列出的错误消息只有在插入作为本文第一个代码示例提供的一段代码后才能检索到。实现此代码的原因是为了完成为我的项目创建 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 模块名称(即“项目”)同名

那么,基于所有这些,对我为什么会收到此错误有什么想法吗?

提前致谢!

P.S:this stackoverflow post 可能会有所帮助,因为它有我当前模块和目录配置的图片

0 个答案:

没有答案