问题标签 [java-module]

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 投票
1 回答
477 浏览

java - Java 9中的自动模块可以读取导出包中命名模块的类吗?

我想看看 Weld CDI 容器如何与 JPMS 一起工作。所以我有以下配置。

我有我的命名模块和weld-se-shaded 作为自动模块。在我的模块中,我有

新班级

新豆类

这就是结果

如何解释这个异常

原因:java.lang.reflect.InaccessibleObjectException:无法使字段私有 com.foo.NewBean com.foo.NewClass.bean 可访问:模块 my.module 没有“打开 com.foo”到模块weld.se.shaded

这里 有一张表在此处输入图像描述 ,我可以从中了解到自动模块可以读取命名(应用程序)模块。那为什么不呢?

0 投票
2 回答
127 浏览

java - 是否可以在 Java 9 中按模块名称获取服务?

让我们考虑一下这种情况 - 有 N 个模块,它们都具有相同接口的服务 ( com.foo.SomeService)。是否可以通过模块名称(my.module)获取此服务,而无需迭代所有模块的所有服务?

0 投票
1 回答
553 浏览

java - 如何在 Java 9 中通过名称获取模块?

如何java.lang.Module在 Java 9 中通过字符串名称获取?

例如,我们有

0 投票
2 回答
310 浏览

java - 如何从 Java 9 中新创建的层中的模块调用服务?

我有三个模块:模块-a、模块-b、模块-c。模块-a 和模块-b 在引导层。我自己创建的模块-c 层。

Module-a 有一个接口com.mod-a.Service,在它的 module-info 中我有:

Module-c 实现com.mod-a.Service并在其模块信息中我有:

module-b 使用 module-c 创建新层,并调用 module-c 服务。在其模块信息中,我有:

在 module-b 中,我以这种方式使用 module-c 创建新层:

但是,创建层后,我无法在 module-b 中调用 module-c 的服务。以下代码:

输出:

我的错误是什么?

0 投票
2 回答
910 浏览

java - 如何在 Java 9 中删除模块层?

我有三个模块:模块-a、模块-b、模块-c。模块-a 和模块-b 在引导层。我自己创建的模块-c 层。Module-c 具有该服务的 JPMS 实现,该接口位于 module-a 中。

这是我在 module-b 中使用 module-c 创建层的方式。

然后在模块-b 中,我从模块-c 调用服务。服务执行完成后,我不再需要 module-c 和新创建的层。如何将其从 JVM 中移除并释放所有资源?够了吗layer = null;

0 投票
1 回答
532 浏览

java - 如何通过 Java 9 中的模块获取 jar 文件名?

例如,我有somefile-0.1.jar包含 JPMS 模块的 jar 文件。此外,我参考Module somemodule了这个模块。

如何通过模块获取 jar 文件名(使用somemodule参考)?我已经检查了 Module API,但没有找到方法。

0 投票
2 回答
259 浏览

java - ResolvedModule、Module 和 Observable Module 有什么区别

这些状态中的每一个的文档如下:

ResolvedModule

已解析模块图中的模块。ResolvedModule定义了配置方法来获取已解析模块所在的配置。它定义了引用方法来获取对模块内容的引用。

Module

表示运行时模块,命名或未命名

问:- 这两者何时不同,是在编译和运行时,还是只是模块的不同表示?

另一方面,模块路径定义

编译时或运行时环境中内置的模块,以及由模块路径上的工件定义的模块,统称为可观察模块的宇宙。

问:- 所有这些都相关吗?有人可以举例说明如何以及在什么时间解释这个概念吗?

0 投票
2 回答
1488 浏览

java - 创建专用于特定模块化应用程序的自定义运行时映像

假设我正在开发一个由 2 个模块组成的模块化应用程序:com.spacey.explorer这取决于com.spacey.rocket模块。我在某个bin目录中有他们的模块化 JAR 文件。

我想准备轻量级 JRE 来运行它。很明显,我使用了jlink工具:

现在,当我在 JRE 中列出模块时,我得到以下信息:

也就是说,我的应用程序模块被捆绑到 JRE 中。但是,如果我想构建一个仅包含 JDK 起源的模块的 JRE,这些模块足以运行我的应用程序并将我的应用程序模块分开,我必须知道我的 JDK 依赖项是什么(在示例中这只是java.base)并明确指定它们喜欢:

有什么方法可以让jlink为我做这件事吗?或者任何可以为我找出那些源自 JDK 的依赖项的工具?

0 投票
1 回答
9259 浏览

java - Java 9 中找不到模块 javafx.controls

我在两个文件中有两个 JPMS 模块:modulea.jarmoduleb.jar. Modulea 需要javafx.controls模块。我需要在新层中使用这些模块,所以我这样做:

我以为JDK模块会自动加载,但我明白了

同时当我做: 时java --list-modules,输出是:

如何解决?

0 投票
1 回答
1579 浏览

java - Java 9 迁移期间未找到不兼容的类型、等式约束和方法

在将我们的一个项目迁移到Java 9(build 9+181)时,我遇到了一个特殊的问题,在某些与类型推断相关的使用中的库中实现看起来不正确。我正在使用一个dropwizard-core(1.1.0)guice(4.1.0)配置如下:



使用以下组合,配置对我来说很好:

  • Java 8 + Maven 3 + Compiler Plugin 3.6.1 [我们的原始设置]
  • Java 9 + Maven 3 + Compiler Plugin 3.7.0(命令行和 Maven 配置更新)

但是当我切换到模块结构然后尝试编译由这些类组成的 maven 模块时,我在以下过程中遇到了这些错误mvn clean install

我不确定为什么会发生这些错误,以及它们是否与使用的模块结构有关。

Q1。是否有任何类型推断相关的更改会影响模块结构更改(如果可能的话)的 Maven 编译,请记住使用的依赖项?

同样在迁移时,我主要使用 IntelliJ 建议的自动模块名称来构造module-infoas :

Q2。如果这不是迁移时的回归问题,为什么我们之前的设置没有失败?这是否还要求我们更改服务中的代码,或者如果这可能有帮助,我们是否应该等待库迁移到模块?

注意:已尝试查看依赖版本和类实现的使用情况。它们在以前的设置和当前设置中是相同的。

请让我知道我可以提供帮助的任何进一步信息。


更新:我能够在我创建的微服务示例中重现相同的内容,以将其与我的项目的其余部分隔离开来。