给定模块路径上的两个模块 m1
和 m2
:
java -version
openjdk version "11.0.2" 2019-01-15
java -p M2/bin:M1/bin --list-modules
...
m1 <path>M1/bin/
m2 <path>M2/bin/
当运行模块m2
,并指定--add-reads
从m2
到m1
时:
java -p M2/bin:M1/bin --add-reads m2=m1 -m m2/p2.C2
WARNING: Unknown module: m1 specified to --add-reads
...
Java 看不到模块 m1
,即使在使用 --list-modules
时它是清晰可见的。
如何让--add-reads
识别模块?
最佳答案
与 module-info.java
中的 requires
不同,--add-reads
不会将模块添加到模块图中,即使the documentation for --add-reads
说:本质上,这是模块声明中 requires 子句的命令行形式
。事实证明,实际的等价物是 --add-modules
与 --add-reads
的结合:
java -p M2/bin:M1/bin --add-modules m1 --add-reads m2=m1 -m m2/p2.C2
关于java - 使用 --add-reads 运行 java 无法识别模块,即使它在使用 --list-modules 运行时出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58776368/