首页 > Java > java教程 > 如何解决自动生成的名称包含保留关键字的 Java 9 模块依赖性问题?

如何解决自动生成的名称包含保留关键字的 Java 9 模块依赖性问题?

Barbara Streisand
发布: 2024-11-28 15:02:10
原创
461 人浏览过

How to Resolve Java 9 Module Dependency Issues with Auto-Generated Names Containing Reserved Keywords?

无法解决 Java 9 中自动生成名称的模块依赖关系?

当与自动生成的模块存在依赖关系时,会出现此问题name 包含关键字“native”,该关键字在 Java 9 中保留。因此,无法将其作为依赖项添加到模块中

解决方案:

要解决此问题,可以考虑两种主要方法:

  1. 添加自动模块名称属性:

    工件所有者可以打包一个META-INF/MANIFEST.MF 文件,其中包含指定 Automatic-Module-Name 属性的工件。该属性定义模块描述符要使用的模块名称。通过将 Automatic-Module-Name 设置为有效名称(不包括“native”),可以解决问题。

  2. 将模块声明添加到JAR:

    工件所有者可以使用以下方式添加模块声明module-info.java 到他们的 JAR 文件。这允许他们显式指定模块名称,从而避免自动生成的名称。然而,这种方法需要逐步迁移,因为库和框架自下而上地采用它。

模块描述符规范:

根据Java 9 模块声明规范,模块名称由一个或多个以句点分隔的 Java 标识符组成。这意味着模块名称必须遵守以下规则:

  • 每个组件必须是有效的 Java 标识符(不包括关键字)。
  • 如果用于模块名称的域名包含特殊字符或关键字,必须转换为下划线。
  • 如果组件以数字或其他不允许作为标识符第一个字符的字符开头,则下划线必须带有前缀。

Java 9 中下划线的注意事项:

虽然通常允许下划线作为模块名称的一部分,但请务必注意下划线现在是 Java 9 中的关键字。因此,必须避免包含下划线作为初始字符的标识符。例如:

int _native; // Works fine
int _; // Causes an error in Java 9
登录后复制

以上是如何解决自动生成的名称包含保留关键字的 Java 9 模块依赖性问题?的详细内容。更多信息请关注PHP中文网其他相关文章!

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