问题标签 [module-info]
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 - Java 9 中会出现循环模块依赖吗?
在 Java 9 中,是否允许使用循环模块?如果不是,原因是什么?
java - 为什么不允许导出整个模块?
在 Java 9 的模块声明中,有两种结构:
和
Whereexports
授予编译时访问,而opens
允许运行时访问,作为反射和资源。
opens
有一个宽大处理exports
,您可以将整个模块定义为打开,结果与显式打开每个包相同:
但是没有类似的结构
我的问题:为什么会这样;已做出哪些决定允许一次打开整个模块但不允许导出?
java - 启动 Jetty 服务器时扫描条目“module-info.class”时出错
我最近在启动我的 java 服务器时看到了这个。有没有其他人看过这个?如果是这样,解决方法是什么?我可以确认 jar 和 module-info.class 存在于相关路径中。
java - What's the purpose of 'uses' directive in Java 9?
Java's ServiceLoader
class is now officially baked into the Java language. Instead of looking for providers in META-INF/services
you can now use the
What I fail to understand is, the use of uses
in the service loading module declaration:
Quoting from The State of the Module System
The module system could identify uses of services by scanning the class files in module artifacts for invocations of the
ServiceLoader::load
methods, but that would be both slow and unreliable. That a module uses a particular service is a fundamental aspect of that module’s definition, so for both efficiency and clarity we express that in the module’s declaration with a uses clause:
Why is it fundamental for the module system to know uses of a particular service, especially how will this introduce efficiency? Aren't services loaded lazily? Why can't the service loader just look for providers on the fly?
java - 模块信息类中提供了服务接口但未导出或使用警告
的实现有点像java.management.rmi
:module-info.java
对于这两个provides
语句,我都看到了编译器警告说明
提供但未导出或使用的服务接口
当我尝试在另一个模块中使用它们时,我最终猜错了:
警告仍然存在。
此外,我还可以到达java.management
's module 找到
仍然发出此警告的原因是什么,如何解决?
根据评论中的要求附上截图:
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 - 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
这里 有一张表 ,我可以从中了解到自动模块可以读取命名(应用程序)模块。那为什么不呢?