问题标签 [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 回答
5405 浏览

java - Java9 JNLP --add-opens 不起作用

我创建了一个简单的测试用例来使用新模块测试 Java 9 Web Start。不幸的是,Java 9 Web Start 默认情况下不像常规 Java 9 那样支持 --permit-illegal-access。

Java 9 Web Start 应该支持 --add-opens (参见https://bugs.openjdk.java.net/browse/JDK-8172986)。

我正在使用 Java 1.9.0_181_ea。

这是我的测试课:

这是我的 JNLP 文件,它应该使 java.awt 代码能够访问。

这似乎与此处讨论的内容一致(如何将 Java 9 '--permit-illegal-access' 标志传递给 Webstart 应用程序?)。但是,它不起作用。在 Java Web Start 下运行它会出现以下错误:

我不清楚我的错误在哪里以及为什么 java.awt.Toolkit 不能通过反射使用。

0 投票
2 回答
19228 浏览

java - fatal error compiling invalid flag --module-path

I have a project. Originally it was a single module project with structure like this

I decided to make it into a multi-module structure - I use java 9 anyway. So I separated it like this

Where root pom.xml looks like this

And module pom.xml looks like this

But when I try to run mvn clean package I get

What is the problem? (maybe I should split maven project into separate modules and each maven module split into java modules)

0 投票
1 回答
1748 浏览

java - 如何在 Java 9 中声明模块

我想在我的项目中使用 java 9 模块。我想将我的数据和服务类(在名为 的包com.test.base中)放在一个名为(Base)的模块中,并将其他东西(如主类和 GUI(在名为的包com.test.main中))放在另一个名为(Main)的模块中。

  • 如何声明简单模块(Base)?
  • 如何声明具有(基)模块依赖的模块(主)?
  • 我也想使用(基本)模块与反射。

  • 假设我的根包是com.test我应该为这些模块使用什么目录结构?

0 投票
9 回答
99293 浏览

java - JDK9:发生了非法反射访问操作。org.python.core.PySystemState

我正在尝试使用 Java9 (JDK9) 运行 DMelt 程序 ( http://jwork.org/dmelt/ ) 程序,它给了我以下错误:

我该如何解决?我试图将 –illegal-access=permit 添加到脚本“dmelt.sh”的最后一行(我在 Linux 中使用 bash),但这并没有解决这个问题。我对此感到非常沮丧。我经常使用这个程序,很长一段时间。也许我永远不应该迁移到 JDK9

0 投票
0 回答
203 浏览

java - 从具有依赖关系的 jar 构建模块

是否有任何工具或技术可以从旧的普通 jar 及其依赖项构建有效它将解决旧库中的拆分包问题。

类似的问题,但在这种情况下自动模块无济于事。

0 投票
2 回答
3541 浏览

java - Java 9 中创建了多少个未命名的模块?

我试图了解 JPMS 是如何工作的。

这里

类路径还没有完全消失。类路径上的所有 JAR(模块化或非模块化)和类都将包含在未命名模块中。与自动模块类似,它导出所有包并读取所有其他模块。但它显然没有名字。因此,命名的应用程序模块不能要求和读取它。未命名的模块反过来可以访问所有其他模块。

请注意...on the classpath will be contained in the Unnamed Module。模块是单数的。

这里

为了兼容性,类路径上的所有代码都打包为一个特殊的未命名模块,没有隐藏的包和对整个 JDK 的完全访问权限。

再次unnamed module。模块是单数的。

我是否理解在 JPMS 中总是只有一个未命名的模块?这是否意味着在 Java9 之前开发且未针对 Java9 更新的应用程序将作为一个未命名的模块加载?

0 投票
2 回答
4166 浏览

java - 如何在 Java 9 中以编程方式获取所有模块的列表?

如何通过 Java 代码获取当前 JVM 实例中所有模块的列表?是否可以?如果是,那么如何?

0 投票
1 回答
4272 浏览

java - 如何在 Java 9 中按类获取模块名称?

如何在 Java 9 中按类获取模块名称?例如,让我们考虑以下情况。有两个命名模块 - ModuleA 和 ModuleB。ModuleA 对 ModuleB 一无所知。模块 B 需要模块 A。

ModuleA 包含类:

ModuleB 包含类:

怎么做?

0 投票
1 回答
1256 浏览

java - Java9 中的 Synthetic 和 Mandated Modifier 有什么区别

java 文档中的ModifierforExports指出

MANDATED 导出是在模块声明的源中隐式声明的。

SYNTHETIC 导出未在模块声明的源中显式或隐式声明。

看几个module-info.classes,可以看出一般有两种用法:

合格的导出确实描述了这两种类型,但没有提到枚举类型。这些是文档中提到的不同类型吗?

Q1。通常,SYNTHETICand、和MANDATED中使用的修饰符。这两者之间有什么区别,在实践中一个优于另一个?ExportsModuleDescriptorOpensRequires

Q2。如果没有在模块的源代码中声明,那Synthetic Modifier是一个无论如何的例子?

0 投票
1 回答
5051 浏览

java - 模块 A 和 B 将包 some.package 导出到 Java 9 中的模块 C

我有三个模块 module-a、module-b 和 module-c。当我运行我的应用程序时,我得到以下信息:

启动层初始化时出错 java.lang.module.ResolutionException: Modules module-a and module-b export package some.package to module module-c

考虑到 module-c 不导入some.package以及如何修复它,这是什么意思?