【问题标题】:Eclipse asking for module named after the old project nameEclipse 要求以旧项目名称命名的模块
【发布时间】:2021-11-13 02:54:58
【问题描述】:

我正在尝试在 Eclipse 上使我的项目模块化,但我遇到了问题。我通过右键单击项目 > 配置 > 创建 module-info.java 添加了module-info.java 文件。但是,当我运行时,我得到了错误

Error occurred during initialization of boot layer
java.lang.module.FindException: Module serenitea-pot-manager not found

我相信这可能是由于在某个时候将项目重命名为 sereniteaPotManager 造成的。最初,项目名称是 serenitea-pot-manager,这是所要求的模块的名称。我通过右键单击项目 > Refactor > Rename... 进行了重命名,这应该已经更新了所有实例。

我已经搜索了一段时间,但仍然没有找到解决此问题的方法。我还需要在 Eclipse 上更新什么以将其更改为正确的模块名称吗?

注意:module-info.java中包含的模块名确实是sereniteaPotManager。

【问题讨论】:

  • 删除启动配置(在 Run > Run Configurations... 中)有帮助吗?
  • @howlger 我尝试删除配置并重新设置,但问题一直出现...

标签: java eclipse rename module-info


【解决方案1】:

我遇到了同样的问题。我将总结我的经验然后我的解决方案。

我重命名了模块,而 Eclipse 一直想使用旧的模块名称。清理,重新启动等,没有帮助。对项目属性、运行配置和工作区中的所有文件的搜索未找到原始模块名称的实例。编辑模块名称使其与原始名称匹配确实有效。就好像 Eclipse 将初始模块名称藏在某个隐藏的地方并一直想要使用它。

我能够通过删除所有存在的运行配置然后创建一个新项目和新的运行配置来解决问题。

我正在使用 JavaFX,它的一个有点奇怪的副作用是在这个新的运行配置中不需要通常需要的运行配置参数(如下)。我想知道 Eclipse 是否也将其隐藏在某个隐藏的地方?

【讨论】:

    【解决方案2】:

    在 Java 中,serenitea-pot-manager 是一个无效的模块名称,因为模块名称不得包含连字符 (-)。

    因此,在module-info.java 中,Eclipse 显示标记“-”的语法错误。因此,请确保在运行您的应用程序之前,Problems 视图中不会显示任何编译错误。

    将你的模块重命名为serenitea_pot_manager,删除现有的启动配置(在Run > Run Configurations...中)并重试:

    module serenitea_pot_manager {
        // ...
    }
    

    【讨论】:

    • 我知道- 模块名称无效。虽然我没有包含我的module-info.java,但我从一开始就将模块命名为sereniteaPotManager。 Eclipse 没有显示编译错误或警告。尽管如此,即使删除了现有的启动配置,它仍然要求一个名为serenitea-pot-manager的模块,我只能链接到原始项目名称。
    • 重命名项目不影响模块名称。请将您的module-info.java 添加到您的问题中。请在再次运行之前显示您在 Run > Run Configurations... 中的内容以及您删除的内容。我可以重现您的问题,并且给定的答案在当前的 Eclipse 2020-09 (4.21) 中对我有用。
    • 感谢您的帮助。与此同时,我已经设法在没有模块化方法的情况下创建了一个可执行文件,并且由于这是一个小型的 hooby 项目,我想我将把它留在那里,因为我没有更多的时间专注于它。最后,也许我在运行配置中搞砸了一些东西,所以你的解决方案可能会起作用。
    猜你喜欢
    • 1970-01-01
    • 2020-04-04
    • 1970-01-01
    • 2011-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多