问题标签 [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.
spring - Spring项目的Java 9 Jigsaw(模块)有什么计划吗?
Java 9 计划很快发布(7 月 27 日)。是否有计划发布符合 Java 9 的模块化 Spring 项目版本(Java 9 项目 Jigsaw)?
java - 我想了解更多关于 OSGi 及其工作原理的信息,知道从哪里开始吗?
我想专门研究模块化应用程序开发、OSGi 和 Java 9 的模块化。但我似乎无法弄清楚从哪里开始。我发现的所有教程看起来都过时了,或者它们没有提供我需要的所有信息,尤其是对于 OSGi。有什么好书或pdf可供使用吗?或者也许在这里分享一些信息。欢迎所有建议。
java - 默认情况下,哪些系统模块在模块路径上?
java -cp
当我通过(不带--add-modules
or )运行应用程序时--limit-modules
,一些 Java 系统模块是可观察的,而其他的则不是。
例如,所有java.se
模块都是可观察的。所有java.se.ee
模块都是不可观察的。我知道javafx.*
模块是可观察的。jdk.unsupported
并且jdk.shell
也是可观察的。
那么,我的假设是否正确:如果没有指定--add-modules
和--limit-modules
,则可观察系统模块集由除 ? 之外的所有系统模块组成java.se.ee
?
是否有可靠的方法来了解默认可观察系统模块的确切列表?我知道有一个--list-modules
选项,但它列出了所有模块,包括java.se.ee
.
java - Java 9 中的 --add-exports 和 --add-opens 有什么区别?
由于新的模块系统,Java 9 (jdk-9+170) 默认情况下不允许应用程序查看 JDK 中的所有类,这与所有以前的 Java 版本不同。
为了解决这个问题,java
命令行提供了一个新参数--add-exports
,它允许打破封装,如下所示:
java -jar josm.jar --add-exports java.base/sun.security.util=ALL-UNNAMED --add-exports java.base/sun.security.x509=ALL-UNNAMED
这在JEP 261中有很好的解释。
我已经阅读了--add-opens
使用相同语法的类似选项,但尚未更新 JEP 261 来描述它(最后更新:2017/03/08 13:58)。
这两个选项有什么区别?
编辑:JEP 261已于 2017-09-22 更新以解释它。
java - 平台模块之间是否允许循环?
这是模块的模块声明java.rmi
:
java.rmi
那么,和之间存在循环依赖关系java.base
,对吧?平台模块之间是否允许循环?
java - Java 9 中 java.se 模块的意义是什么?
为什么 java 9 模块系统有 java.se 模块,该模块对其他模块具有传递依赖。它与在 Java 9 之前的世界中依赖整个 rt.jar 不同吗?
java - JDK9中有动态模块发现吗?
在即将到来的 Java 9 中,有没有办法动态发现哪些模块可用?
例如:
- 使用一些模块路径运行一些应用程序
- 当应用程序运行时,在模块路径中添加更多模块(例如复制到模块目录中)
- 在应用程序中,查询“给我所有可用的模块”(可能使用过滤器,例如提供相同服务的替代实现的那些)
我不能从文档中完全看出。
eclipse - 在 Eclipse Oxygen 4.7 中导入 Java-9-Jigsaw-Maven-Project 不起作用
在 Eclipse Oxygen 4.7 中导入 Java-9-Jigsaw-Maven-Project 不起作用
我用:
- JDK 9 构建 9-ea+172
- Maven 3.5.0
- Eclipse Oxygen 4.7 RC3 版本 4.7.0.I20170531-2000 从 2017-05-31
- Eclipse 插件:
- Eclipse JDT(Java 开发工具)补丁,支持 Oxygen 开发流的 Java 9 (BETA),1.1.1.v20170526-0728_BETA_JAVA9
- m2e - Eclipse 的 Maven 集成(包括孵化组件),1.8.0.20170516-2043
创建一个新的 Jigsaw-Maven-Project:
在目录proj1
中的文件pom.xml
:
在目录proj1\a
中的文件pom.xml
:
在目录proj1\a\src\main\java\a
中的文件module-info.java
:
在目录proj1\a\src\main\java\a\a
中的文件App.java
:
在命令行上运行项目:
-->
-->
完美无误(CLASSPATH 为空,getModule() 中的名称正确,ModuleLayer 有效)。
在 IntelliJ IDEA 2017.2 EAP 中打开项目
-->
完美无误(CLASSPATH 为空,getModule() 中的名称正确,ModuleLayer 有效)。
在 Eclipse Oxygen 4.7 RC3 中导入项目:
-->
-->
三行都错了。
我怎样才能避免这个错误?
java - 无法识别的选项:--print-module-descriptor
我正在遵循http://openjdk.java.net/projects/jigsaw/quick-start上的 Java 9 Jigsaw 早期访问版本快速入门指南中的步骤
jar 命令是从正确的 Java 9 目录中提取的。
快速入门指南中的步骤之一说要运行带有选项的 jar 命令,--print-module-descriptor
但是当我尝试收到以下错误消息时。
看起来这个选项在最新的抢先体验版本中不存在,是被删除还是移到了其他地方?jar --help
下面输出供参考
java - 有 maven jigsaw jlink 插件吗?
maven 是否有针对新 Java 9 的插件jlink
?