问题标签 [java-platform-module-system]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
718 浏览

java - Java 9 中的文件夹/目录名称是否存在模块名称的问题?

从这个来源引用,它提到

包含模块源的目录的名称应该与模块的名称相同,例如 de.consol.devday.service

考虑到文件夹名称受操作系统的字符限制(例如,Windows 的最大长度为 255)并且可能限制我们如何命名文件夹和模块,这是一个好的建议吗?

希望Java核心团队的人可以对此提供见解并提供建议。

从这里引用另一个例子:- 在此处输入图像描述

模块名称跟随文件夹名称,文件夹名称受 255 个字符限制,可扩展吗?

可能是在实际代码中,文件夹名称很可能没有达到该限制,但是应该在官方 Java 文档中提到这种限制以考虑这种方式(也许它有?或者有人可以指出,如果有的话?)

感谢

0 投票
1 回答
3376 浏览

java - Immutables don't generate code with java 9 with modules

Using immutables-library works fine with java 9 until I add a module-info.java to the project, Immutables*.java will no longer be generated.

To the module-info I add 'requires value' as suggested by IntelliJ.

What am I missing, is it a immutables-library issue or something else I need to set up in order for javac to find the annotation processing.

I am using maven with the maven-compiler-plugin:3.7.0configured for target/source = 9.

0 投票
3 回答
10395 浏览

java - What does "Required filename-based automodules detected." warning mean?

In my multi-module project, I created module-info.java only for few modules. And during compilation with maven-compiler-plugin:3.7.0 I'm getting next warning:

[WARNING] * Required filename-based automodules detected. Please don't publish this project to a public artifact repository! *

What does it mean? Is that because I have only a few modules with module-info.java and not the whole project?

0 投票
2 回答
13887 浏览

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

我的项目依赖于 Netty Epoll 传输。这里是依赖:

此依赖项的自动生成的模块名称是:

由于nativeJava 9 中保留了关键字,因此我无法将此模块作为依赖项添加到我的项目中:

由于:

此外,jar 工具--describe-module报告以下内容:

无法为以下各项派生模块描述符:netty-transport-native-epoll-4.1.17.Final-SNAPSHOT-linux-x86‌_64.jar netty.transport.native.epoll:无效的模块名称:'native' 不是 Java 标识符

有什么解决方法吗?(当然,“发布正确的网络工件”除外)。

编辑

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

0 投票
1 回答
5999 浏览

java - 如何从 Java 9 模块中导出所有包?

现在,对于我拥有的每个模块,我都需要明确指定要导出的包。例如:

但是,它不是很方便。我想做这样的事情:

有没有办法做到这一点?这个限制从何而来?

0 投票
1 回答
2579 浏览

java - 模块不依赖 Intellij IDEA 2017.2.5 Java 9

我刚刚在命令行中测试了我对 java 9 模块的理解。然后我转到 Intellij IDEA 2017.2.5 进行测试。那里我面临错误module is not in dependencies不知道为什么 intellij 显示错误。

我只是在module-info.javaasexportsrequires.

然后我使用 Intellij 智能通过 IDEA 自行解决错误。只需 ALT+ENTER 然后我单击Add dependency on module 'module-name-here'. 但我不知道 Intellij 在幕后做了什么。有什么想法吗?

0 投票
0 回答
400 浏览

java - 编译 Java 9 模块时的包冲突

我正在尝试编译一个具有单个直接依赖项的简单模块,并且我收到许多关于从 2 个库中读取的包的错误。
我正在使用最新的稳定版本的库,我看到包在它们之间是分开的。

有没有什么方法可以解决这个问题,而无需等待新版本的包未拆分的库?

模块信息.java:

构建.gradle:

Java版本:9+181
gradle版本:4.2

./gradlew Abc:compileJava

任务:Abc:compileJava
错误:未命名模块从功能区和ribbon.transport读取包com.netflix.ribbon
错误:未命名模块从ribbon.httpclient 和ribbon.loadbalancer 读取包com.netflix.loadbalancer
错误:未命名模块从 jcl.over.slf4j 和 commons.logging 读取包 org.apache.commons.logging
错误:未命名的模块从 jcl.over.slf4j 和 commons.logging 读取包 org.apache.commons.logging.impl
错误:未命名模块从ribbon.httpclient 和ribbon.core 读取包com.netflix.client.http
错误:未命名模块从ribbon.loadbalancer 和ribbon.core 读取包com.netflix.client
错误:模块 spring.cloud.starter.archaius 从功能区和ribbon.transport 读取包 com.netflix.ribbon
错误:模块 spring.cloud.starter.archaius 从 jcl.over.slf4j 读取包 org.apache.commons.logging和 commons.logging
错误:模块 spring.cloud.starter.archaius 从 jcl.over.slf4j 和 commons.logging 读取包 org.apache.commons.logging.impl
错误:模块 spring.cloud.starter.archaius 读取包 com。来自ribbon.httpclient 和ribbon.loadbalancer 的netflix.loadbalancer
...
100 错误

0 投票
3 回答
5392 浏览

java - 列出 jar 文件中的模块

我已经创建了一个我很确定是模块化的 jar 文件。但如果可能的话,我想仔细检查一下。给定一个 jar 文件,有没有办法确定编译器会在其中找到哪些模块?

0 投票
0 回答
350 浏览

java - Gradle Source Set 依赖项不适用于 Jigsaw 模块

考虑以下 gradle 项目:


src/foo/module-info.java


src/bar/module-info.java


构建.gradle


运行gradle compileBarJava时,java编译器给出以下错误:

这是为什么?毕竟,bar源集的设置方式是它应该完全依赖于foo. 如果bar源集中的类依赖于 中的类foo,编译器不会抱怨。

0 投票
0 回答
213 浏览

java - Java 9模块,静态是否意味着浅反射?

为了能够在移植到 Java 9 时更好地判断反射的风险,我想知道浅反射代替静态编译是否安全,只要它引用可访问的类型:

我的意思是,我可以随时更换吗

(其中Factory.instance()有返回类型,并且会从未打开的模块Object返回 API 类型 ( ) 的子类型)。Package.PublicType

这个问题的早期版本是关于我同时解决的特定代码问题。

但一般性问题也很有趣:是否存在返回对象的子类型正确但在调用或 MethodHandle 解析时访问检查失败的情况。