当前位置: 首页 > 知识库问答 >
问题:

无法为Java9中自动生成的模块名派生模块描述符?

丁雅懿
2023-03-14

我的项目依赖于Netty Epoll Transport。以下是依赖关系:

<dependency>
    <groupId>io.netty</groupId>
    <artifactId>netty-transport-native-epoll</artifactId>
    <version>${netty.version}</version>
    <classifier>${epoll.os}</classifier>
</dependency>
netty.transport.native.epoll
module core {
    requires netty.transport.native.epoll;
}
module not found: netty.transport.<error>

无法派生模块描述符:netty-transport-native-epoll-4.1.17。final-snapshot-linux-x 86_64.jar netty.transport.native.epoll:无效的模块名:'native'不是Java标识符

有什么变通办法吗?(当然,除了“释放正确的netty神器”)。

编辑:

作为维护者的快速修复-您可以添加下一行来构建:

<manifestEntries>
   <Automatic-Module-Name>netty.transport.epoll</Automatic-Module-Name>
</manifestEntries>

共有1个答案

龙永思
2023-03-14

解决这个问题的办法似乎是:-

  • 不间断地将相同的工件名称与新的(不同的)模块名称一起使用的一种可能方法是,将工件的META-INF/MANIFEST.MF打包为属性Automatic-Module-Name,该属性在转换为自动模块时管理模块描述符要使用的模块名称。

    null

如果生成的任何包名称组件以数字或不允许作为标识符初始字符的任何其他字符开头,则在组件前加下划线。

但是请记住,下划线在Java9中是一个关键字

int _;  // is would throw an error on javac based out of JDK9
int _native; // works fine
 类似资料:
  • 我得到错误,当我试图运行TestNG项目与Java11通过Eclipse 启动层java初始化期间出错。lang.module。FindException:无法派生C:\Users\ShefaliBajaj\Downloads\eclipse-java-2018-12-R-win32-x86\U 64\eclipse\plugins\org的模块描述符。testng_6.14.3。r2018022

  • 当我试图编译新的模块化Java11应用程序时,我得到了这个错误消息:

  • 非常简单的用例,我使用的是EclipseOxygen4.7。3a,包括来自Java9的支持。我有两个项目是Java 9项目: 我想在中使用类,因此我尝试将第二个模块导入第一个项目。 模块信息。java项目1: 模块信息。java项目2: Eclipse给了我错误: 项目二不能解析为模块 我是否必须将所有Java项目集中在一个“主项目”下,以便让Eclipse知道所有这些模块在其中都是可用的?还是我

  • 当我试图编译我的新的模块化Java 11应用程序时,我收到了这个错误消息: 这似乎是一个依赖项的依赖项的问题。我甚至找不到是哪个模块把它拉进来,这样我就可以更新它了。 我使用的是openjdk 11.0.2、IntelliJ 2018.3.4、Maven 有什么建议我可以如何解决或修复这个问题吗?我在这个问题上找到的文件很少。

  • 本文对用于描述模块的术语加以说明。 说明 对模块用途的简要说明。 状态(Status) 状态(Status)代表了此模块与Apache服务器结合的紧密程度;也就是说,有可能需要重新编译服务器以获得一个模块的功能。其可能的值有: MPM 一个多路处理模块。与其他类型的模块不同的是,必须在编译配置时进行选择,必须有且仅有一个MPM被静态编译到服务器中。此类型的模块负责基本的对请求的处理和指派。 Bas