一个包中有两个module-info.java

时间:2018-04-07 11:45:35

标签: java module package java-9

我想在一个包中使用两个模块来完成项目工作。 包com.test包括test1和test2。 这段代码是注释编译,因为:

错误:模块'Java9Test'中的多个模块信息文件

什么是不正确的?

test1包含module-info.java

module com.test.test1 {} 

和Client.java

package com.test.test1;

import com.test.test2.Provider;

public Client {
    public static void main(String[] args) {
        Provider provider = new Provider();
        System.out.printf(provider.getString(), "TestA");
    }
}

并打包包含

的test2

module-info.java

module com.test.test2 {}

和Provider.java

package com.test.test2;

public class Provider {
    public String getString(){
        return "Hello, %s!";
    }
}

很抱歉,我在使用java9的模块中非常新的

1 个答案:

答案 0 :(得分:0)

编译器(或IDE)认为您只有一个模块。一个模块只能有一个模块描述符(module-info.java)。

您可以尝试以下目录结构:

module1/
  module-info.java
  com/
    test/
      test1/
        Client.java
module2/
  module-info.java
  com/
    test/
      test2/
        Provider.java

每个顶级module1module2目录都是模块目录,因此您将拥有2个模块。

第一个模块描述符

module module1 {
    requires module2;
}

第二个模块描述符

module module2 {
    exports com.test.test2;
}