两个模块 - info.java 在一个包中

two module-info.java in one package

我想在一个包中包含两个模块的项目工作。 有包 com.test,其中包括 test1 和 test2。 此代码未编译,因为:

错误:模块 'Java9Test'

中有多个模块信息文件

哪里不对?

test1 包含模块-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 其中包含

模块-info.java

module com.test.test2 {}

和Provider.java

package com.test.test2;

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

抱歉,我是模块的新手 java9

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

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

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

每个 top-level module1module2 目录都是模块目录,因此您将有 2 个模块。

第一个模块描述符

module module1 {
    requires module2;
}

第二个模块描述符

module module2 {
    exports com.test.test2;
}