我创建了 2 个随机模块,我从文件夹 A 导出了“com.alice”包,并需要文件夹 B 中的模块。然后编译 A: javac mod10/A/module-info.java mod10/A/com/alice/Ship.java
并尝试编译 B javac mod10/B/module-info.java mod10/B/com/alice2/Main.java
。我明白了:
error: module not found: com.alice
requires com.alice;
^
1 error
为什么我会收到“找不到模块”的错误消息? 导出一个模块以使其对其他模块可见,难道不应该是重点吗?
在 mod10/A/module-info.java 中
module com.alice {
exports com.alice;
}
Ship.java
package com.alice;
public class Ship {
private String name;
public Ship() {
this.name = "Ship Created";
}
public String getName() {
return this.name;
}
}
在 mod10/B/module-info.java 中
module com.alice2 {
requires com.alice;
}
Main.java
package com.alice2;
import com.alice;
public class Main {
public static void main(String[] args) {
Ship x = new Ship();
System.out.println("Ship made" + x.getName());
}
}
文件夹树:
mod10 (root)
|_ A
|_ com
|_ alice
|_ Ship.java
|_ module-info.java
|_ B
|_ com
|_ alice2
|_ Main.java
|_ module-info.java