问题标签 [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 投票
2 回答
6440 浏览

spring - Spring项目的Java 9 Jigsaw(模块)有什么计划吗?

Java 9 计划很快发布(7 月 27 日)。是否有计划发布符合 Java 9 的模块化 Spring 项目版本(Java 9 项目 Jigsaw)?

0 投票
2 回答
184 浏览

java - 我想了解更多关于 OSGi 及其工作原理的信息,知道从哪里开始吗?

我想专门研究模块化应用程序开发、OSGi 和 Java 9 的模块化。但我似乎无法弄清楚从哪里开始。我发现的所有教程看起来都过时了,或者它们没有提供我需要的所有信息,尤其是对于 OSGi。有什么好书或pdf可供使用吗?或者也许在这里分享一些信息。欢迎所有建议。

0 投票
1 回答
2424 浏览

java - 默认情况下,哪些系统模块在模块路径上?

java -cp当我通过(不带--add-modulesor )运行应用程序时--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.

0 投票
1 回答
32596 浏览

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 更新以解释它。

0 投票
1 回答
230 浏览

java - 平台模块之间是否允许循环?

这是模块的模块声明java.rmi

java.rmi那么,和之间存在循环依赖关系java.base,对吧?平台模块之间是否允许循环?

0 投票
2 回答
944 浏览

java - Java 9 中 java.se 模块的意义是什么?

为什么 java 9 模块系统有 java.se 模块,该模块对其他模块具有传递依赖。它与在 Java 9 之前的世界中依赖整个 rt.jar 不同吗?

0 投票
2 回答
474 浏览

java - JDK9中有动态模块发现吗?

在即将到来的 Java 9 中,有没有办法动态发现哪些模块可用?

例如:

  1. 使用一些模块路径运行一些应用程序
  2. 当应用程序运行时,在模块路径中添加更多模块(例如复制到模块目录中)
  3. 在应用程序中,查询“给我所有可用的模块”(可能使用过滤器,例如提供相同服务的替代实现的那些)

我不能从文档中完全看出。

0 投票
2 回答
1064 浏览

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 中导入项目:
-->

-->
三行都错了。

我怎样才能避免这个错误?

0 投票
1 回答
710 浏览

java - 无法识别的选项:--print-module-descriptor

我正在遵循http://openjdk.java.net/projects/jigsaw/quick-start上的 Java 9 Jigsaw 早期访问版本快速入门指南中的步骤

jar 命令是从正确的 Java 9 目录中提取的。

快速入门指南中的步骤之一说要运行带有选项的 jar 命令,--print-module-descriptor但是当我尝试收到以下错误消息时。

看起来这个选项在最新的抢先体验版本中不存在,是被删除还是移到了其他地方?jar --help下面输出供参考

0 投票
3 回答
2277 浏览

java - 有 maven jigsaw jlink 插件吗?

maven 是否有针对新 Java 9 的插件jlink