Tag: module info

无法执行maven-compiler-plugin:3.6.1:使用java 9时的testCompile

我知道有很多类似错误的问题。 我希望在重点之前考虑到它只发生在Java 9中。 我确实安装了java 9 C:\_pocs\ws_j9\java9-http-client>java -version java version “9.0.1” Java(TM) SE Runtime Environment (build 9.0.1+11) Java HotSpot(TM) 64-Bit Server VM (build 9.0.1+11, mixed mode) C:\_pocs\ws_j9\java9-http-client>echo %JAVA_HOME% C:\Program Files\Java\jdk-9.0.1 为了简化示例,如果我下载一个非常简单的示例https://examples.javacodegeeks.com/core-java/java-9-httpclient-example/ ,我尝试/ mvn clean install package -e [ERROR] Failed to parse module-info: [ERROR] With qdox: null [INFO] ———————————————————————— [INFO] BUILD FAILURE [INFO] ———————————————————————— [INFO] Total time: […]

Java 9:模块路径上可能有2个具有相同名称的模块

是否可以在模块路径上拥有2个具有完全相同名称(但内容略有不同)的模块? 据我所知,Java 9编译器并没有抱怨它。 我有2个模块声明如下: module com.dj.helper { exports com.dj.helper; } 两者都包含com.dj.helper包,但在包中内容不同。 然后在我的主应用程序中,我想要导入此模块: module com.dj { requires com.dj.helper; } 具有相同名称的两个模块都在我的模块路径上。 我希望在编译我的com.dj模块时,编译器会抱怨同一个模块存在两次,但事实并非如此。 这是否有效地意味着您可以在模块路径上拥有相同jar的2个版本,而Java将不知道使用哪个版本?

什么是Java 9中的开放模块以及如何使用它

模块与open关键字之前和之后有什么区别? 例如: open module foo { } module foo { }

为什么不允许导出整个模块?

在Java 9的模块声明中有2个构造: exports com.foo; 和 opens com.foo; 其中, exports授予编译时访问权限,而opens允许运行时访问,作为reflection和资源。 opens对exports有一个宽容,你可以将整个模块定义为打开,结果与显式打开每个包相同: open module com.mod { 但是没有类似的结构 exported module com.mod { 我的问题 :为什么会这样; 做出了哪些决定允许一次打开整个模块而不是出口?

如何将模块声明注入JAR?

假设我有一些库lib.jar ,我没有源代码(或者它是用一些不熟悉模块的非Java语言编写的)。 lib.jar没有module-info.class ,我不想将它用作自动模块,所以我想将module-info.class注入其中。 我首先使用以下命令生成module-info.java : jdeps –generate-module-info . lib.jar 假设这产生了类似的东西: module lib { exports package1; exports package2; } 然后我尝试编译它但javac失败,因为包package1和package2不存在: > javac module-info.java module-info.java:4: error: package is empty or does not exist: package1 当然,我可以在其中创建带有虚拟类的目录package1和package2 ,但是有更好的方法吗?

列出应用程序启动期间解析的模块

如何在启动应用程序时了解已解决的模块列表,以便确定可从根模块访问所有服务提供程序的内容。

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

我的项目依赖于Netty Epoll传输。 这是依赖: io.netty netty-transport-native-epoll ${netty.version} ${epoll.os} 此依赖项的自动生成的模块名称为: netty.transport.native.epoll 由于native 9中保留了native关键字,因此无法将此模块作为依赖项添加到我的项目中: module core { requires netty.transport.native.epoll; } 由于: module not found: netty.transport. 此外,jar工具–describe-module报告以下内容: 无法导出模块描述符:netty-transport-native-epoll-4.1.17.Final-SNAPSHOT-linux-x86_64.jar netty.transport.native.epoll:无效的模块名称:’native’不是Java标识符 有没有解决方法? (当然,除了“发布正确的网络工件”)。 编辑 : 作为维护者的快速修复 – 您可以添加下一行来构建: netty.transport.epoll