首页 > Java > java教程 > 如何解决 Java 9 中自动生成模块名称的'无法派生模块描述符”错误?

如何解决 Java 9 中自动生成模块名称的'无法派生模块描述符”错误?

Mary-Kate Olsen
发布: 2024-11-25 03:43:12
原创
693 人浏览过

How to Resolve

无法在 Java 9 中为自动生成的模块名称派生模块描述符?

在 Java 9 中,使用为包含保留关键字(例如“native”)的依赖项自动生成的模块名称。这可能会导致“找不到模块”之类的错误。

理解问题

Java 9 引入了模块的概念,它允许封装和隔离代码。模块具有必须遵守 Java 标识符规则的唯一名称。但是,某些关键字(例如“native”)不能用作模块名称的一部分。

可能的解决方法

1.使用自动模块名称清单条目

一种解决方案是将“自动模块名称”清单条目添加到有问题的依赖项的 JAR 文件中。此条目指定工件的自定义模块名称,覆盖自动生成的名称。例如,您可以修改 Netty Epoll 依赖项的清单文件以包含:

<Automatic-Module-Name>netty.transport.epoll</Automatic-Module-Name>
登录后复制

2。将模块声明添加到 JAR

工件所有者还可以使用“module-info.java”文件将模块声明添加到其 JAR 中。这显式定义了模块名称,确保与 Java 9 的模块系统兼容。

替代命名约定

根据 Java 规范,模块名称必须是有效的包名称。为了适应依赖项的 Internet 域名无法转换为有效包名称的情况,建议采用以下约定:

  • 将连字符或其他特殊字符转换为下划线。
  • 在关键字后添加下划线。
  • 以不允许的字符开头的组件前缀

但是请注意,由于其作为关键字的地位,在 Java 9 中不鼓励在模块名称中使用下划线。

以上是如何解决 Java 9 中自动生成模块名称的'无法派生模块描述符”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板