问题标签 [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.
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 不能通过反射使用。
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)
java - 如何在 Java 9 中声明模块
我想在我的项目中使用 java 9 模块。我想将我的数据和服务类(在名为 的包com.test.base
中)放在一个名为(Base)的模块中,并将其他东西(如主类和 GUI(在名为的包com.test.main
中))放在另一个名为(Main)的模块中。
- 如何声明简单模块(Base)?
- 如何声明具有(基)模块依赖的模块(主)?
我也想使用(基本)模块与反射。
假设我的根包是
com.test
我应该为这些模块使用什么目录结构?
java - JDK9:发生了非法反射访问操作。org.python.core.PySystemState
我正在尝试使用 Java9 (JDK9) 运行 DMelt 程序 ( http://jwork.org/dmelt/ ) 程序,它给了我以下错误:
我该如何解决?我试图将 –illegal-access=permit 添加到脚本“dmelt.sh”的最后一行(我在 Linux 中使用 bash),但这并没有解决这个问题。我对此感到非常沮丧。我经常使用这个程序,很长一段时间。也许我永远不应该迁移到 JDK9
java - 从具有依赖关系的 jar 构建模块
是否有任何工具或技术可以从旧的普通 jar 及其依赖项构建有效的 java 模块?它将解决旧库中的拆分包问题。
有类似的问题,但在这种情况下自动模块无济于事。
java - Java 9 中创建了多少个未命名的模块?
我试图了解 JPMS 是如何工作的。
从这里
类路径还没有完全消失。类路径上的所有 JAR(模块化或非模块化)和类都将包含在未命名模块中。与自动模块类似,它导出所有包并读取所有其他模块。但它显然没有名字。因此,命名的应用程序模块不能要求和读取它。未命名的模块反过来可以访问所有其他模块。
请注意...on the classpath will be contained in the Unnamed Module
。模块是单数的。
从这里
为了兼容性,类路径上的所有代码都打包为一个特殊的未命名模块,没有隐藏的包和对整个 JDK 的完全访问权限。
再次unnamed module
。模块是单数的。
我是否理解在 JPMS 中总是只有一个未命名的模块?这是否意味着在 Java9 之前开发且未针对 Java9 更新的应用程序将作为一个未命名的模块加载?
java - 如何在 Java 9 中以编程方式获取所有模块的列表?
如何通过 Java 代码获取当前 JVM 实例中所有模块的列表?是否可以?如果是,那么如何?
java - 如何在 Java 9 中按类获取模块名称?
如何在 Java 9 中按类获取模块名称?例如,让我们考虑以下情况。有两个命名模块 - ModuleA 和 ModuleB。ModuleA 对 ModuleB 一无所知。模块 B 需要模块 A。
ModuleA 包含类:
ModuleB 包含类:
怎么做?
java - Java9 中的 Synthetic 和 Mandated Modifier 有什么区别
java 文档中的Modifier
forExports
指出
MANDATED
导出是在模块声明的源中隐式声明的。
SYNTHETIC
导出未在模块声明的源中显式或隐式声明。
看几个module-info.class
es,可以看出一般有两种用法:
合格的导出确实描述了这两种类型,但没有提到枚举类型。这些是文档中提到的不同类型吗?
Q1。通常,SYNTHETIC
and、和MANDATED
中使用的修饰符。这两者之间有什么区别,在实践中一个优于另一个?Exports
ModuleDescriptor
Opens
Requires
Q2。如果没有在模块的源代码中声明,那Synthetic
Modifier
是一个无论如何的例子?
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
以及如何修复它,这是什么意思?