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

java - 如何从 Java 9 中的另一个模块获取 ResourceBundle?

我有两个模块:module-a 和 module-b。模块-a 具有属性文件 ( com/foo/texts_en.properties)。模块 - 一个导出com.foo包。在 module-b 中,我想获取此资源。为此,我在 module-b 中执行以下操作:

这就是我得到的:

我的错误是什么?

0 投票
2 回答
717 浏览

java - 如何从 Java 9 中的另一个模块添加到 JavaFX 场景样式表?

我有两个 JPMS 模块:

  • 模块-a
  • 模块-b

在 module-a 我有类似的东西:

在 module-b 中,我有想要添加到的 CSS 文件MyApplication。如何在 module-b 的代码中做到这一点?我不明白如何从另一个模块传递路径。

我的意思是在模块 b 中:

编辑
在 OSGi 中,我使用了以下解决方案bundle-b(假设 module-a 是 bundle-a,module-b 是 bundle-b):

0 投票
2 回答
2457 浏览

java - 如何为其名称中包含“-”(连字符)的工件添加“要求”

我在我的 Maven pom.xml 中包含了这些依赖项:

我正在尝试在 module-info.java 中添加此依赖项,如下所示:

对于 commons-io,我收到编译错误。我怎样才能使这项工作?

0 投票
0 回答
175 浏览

java - 是否可以在 Java 9 中为子层中的模块隐藏父层中的模块?

让我们考虑以下情况。我有两层:

  • 引导层
  • 我的自定义层

引导层是 mycustom 层的父级。除了我有三个模块:

  • 模组.a
  • 模组.b
  • 模组

在 mod.a 的模块信息中,我有

在 mod.c 的模块信息中,我有

在引导层我有 mod.a 和 mod.b。在 mycustom 层中,我有 mod.b 和 mod.c(出于某些原因,我希望在该层中有 mod.b)。但是,我得到以下异常:

java.lang.module.ResolutionException: mod.c 读取多个名为 mod.b 的模块。

是否可以在 mycustom 层中的模块的引导层中“隐藏”mod.b?如果是,那么如何?

这是我创建自定义层的方式:

0 投票
6 回答
7256 浏览

java - 如何提取文件 jre-9/lib/modules?

JRE-9/lib目录中(至少在 Windows 上),有一个名为的新文件modules,其大小约为 107 MB。是否可以提取该文件或在其中列出 java 模块?

我可以看到一个名为jmodat 的新工具可用jdk-9/bin/jmod.exe,但它用于读取.jmod位于 at 的文件jdk-9/jmods,它无法读取该文件modules

0 投票
3 回答
718 浏览

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

从这个来源引用,它提到

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

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

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

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

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

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

感谢

0 投票
1 回答
4747 浏览

java - 带有 Jaxb 和 JDK 9 的小程序中的非法反射访问

我有一个 Java 小程序,它提供了一个 GUI 来调用 Web 服务。它使用 Jaxb 解析 XML 数据并将其解组为对象。它可以在 Java 1.5 到 1.8 中正确运行。使用 Java 9,就没有那么多了。

我使用容器 HTML 在 Internet Explorer 8 + JDK 9 中启动它:

小程序加载正常并且似乎可以工作;但是,一旦我连接到 Web 服务,它就会停止工作。我已将其缩小到此代码片段(其中Foo是带有 XML 绑定注释的自动生成的类):

Java 的控制台显示1,然后......什么都没有:它不会崩溃,小程序仍然响应鼠标点击,它不会抛出任何异常......似乎根本没有错误。除了它不对接收到的数据做任何事情,而且它从不输出2. 我尝试过替代JAXBContext.newInstance方法(使用包名,使用包名加上类加载器),但它们都做同样的事情。

如果我使用相同的 JDK 9 从 Eclipse Oxygen 运行项目,它确实可以工作。当我连接到 Web 服务时,它会输出一些警告,包括:

但随后它继续加载数据(并将数据输出2到控制台)。我的猜测是同样的问题,即使 Java 控制台中没有显示警告。也许JDK默认为--illegal-access=deny从IE运行时?或者“默默地拒绝用户不知道发生了什么” ......

有什么方法可以将--illegal-access=permit选项传递给 JVM?(请记住,我没有直接调用 JVM,我只有一个<applet>html 标签)

有没有其他方法可以让它工作?也许在我的小程序清单文件中添加一些额外的东西?(顺便说一下,看起来像这样):

这些是我最初使用的 Jaxb 依赖项:

  • javax.xml.bind:jaxb-api:2.0
  • com.sun.xml.bind:jaxb-impl:2.0
  • com.sun.xml.bind:jaxb-xjc:2.0

我尝试将它们从 v2.0 更新到 v2.3.0,它们应该与 Java 9 兼容

  • javax.xml.bind:jaxb-api:2.3.0
  • com.sun.xml.bind:jaxb-impl:2.3.0
  • com.sun.xml.bind:jaxb-core:2.3.0
  • com.sun.xml.bind:jaxb-xjc:2.3.0

但问题仍然存在。在nullpointer 的回答之后也尝试了这些,也没有运气:

  • javax.xml.bind:jaxb-api:2.1
  • javax.xml:jaxb-impl:2.1
  • 删除了 jaxb-xjc,显然不需要...
0 投票
3 回答
11825 浏览

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

前面有关键字和没有关键字的模块有什么区别open?例如:

0 投票
2 回答
7659 浏览

java - Java 9 中的类加载器层次结构

从 Java 8 开始,我知道类加载器的层次结构如下:

引导类加载器 → 扩展类加载器 → 应用程序类加载器

Java 9 中类加载器的层次结构发生了哪些变化,它是如何工作的?

0 投票
2 回答
2015 浏览

java - Java 9 模块的目录布局

我一直在尝试编写 Java 9 模块,但无论我做什么,我都会收到错误“包为空或不存在”。我已经尝试在线搜索预期的目录布局,并尝试了我能想到的目录布局的所有变体,但没有任何效果。

例如,这是我尝试过的一种布局

bar.foo/module-info.java

bar.foo/bar/foo/wtf.java

但是,编译仍然像往常一样给出相同的错误。