JPMS 模块系统问题

时间:2021-03-17 12:09:38

标签: java command-line-interface java-platform-module-system

我创建了 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

0 个答案:

没有答案