无法从module-info.java中找到模块

时间:2017-08-04 13:51:03

标签: java java-9

我在同一个文件夹中有两个不同的项目:com.jdojo.addresscom.jdojo.person。第一个在默认包下有一个简单的pojo类Address和一个module-info.java

module com.jdojo.address {
    exports com.jdojo.address;
}

此处没有错误。

com.jdojo.person项目中,我有一个Person类,它使用前一个Address属性。 module-info.java

module com.jdojo.person {
    requires com.jdojo.address;
    exports com.jdojo.person;
}

我在requires行中出错:

  找不到

模块:com.jdojo.address

我在 NetBeans IDE Dev(Build 201708030001) IntelliJ IDEA 2017.2.1 中遇到此问题。

├───com.jdojo.address
│   ├───.idea
│   │   └───inspectionProfiles
│   ├───nbproject
│   │   └───private
│   └───src
│       └───com
│           └───jdojo
│               └───address
├───com.jdojo.intro
│   ├───.idea
│   │   ├───inspectionProfiles
│   │   └───libraries
│   ├───build
│   │   ├───classes
│   │   │   └───com
│   │   │       └───jdojo
│   │   │           ├───address
│   │   │           ├───intro
│   │   │           └───person
│   │   ├───empty
│   │   └───generated-sources
│   │       └───ap-source-output
│   ├───dist
│   ├───nbproject
│   │   └───private
│   ├───src
│   │   └───com
│   │       └───jdojo
│   │           └───intro
│   └───test
├───com.jdojo.person
│   ├───.idea
│   │   └───inspectionProfiles
│   ├───nbproject
│   │   └───private
│   ├───src
│   │   └───com
│   │       └───jdojo
│   │           └───person
│   └───test
├───lib
├───mods
│   └───com.jdojo.intro
│       └───com
│           └───jdojo
│               └───intro
└───src
    └───com.jdojo.intro
        └───com
            └───jdojo
                └───intro

这些是module-info和java类路径

C:\Java9Revealed\com.jdojo.address\src\module-info.java
C:\Java9Revealed\com.jdojo.address\src\com\jdojo\address\Address.java

C:\Java9Revealed\com.jdojo.person\src\module-info.java
C:\Java9Revealed\com.jdojo.person\src\com\jdojo\person\Person.java

1 个答案:

答案 0 :(得分:4)

Per the Quick Start guide,通常将源代码放在以模块命名的文件夹中。在这种情况下,文件夹结构应为:

com.jdojo.address/src/com.jdojo.address/module-info.java
com.jdojo.address/src/com.jdojo.address/com/jdojo/address/Address.java

com.jdojo.person/src/com.jdojo.person/module-info.java
com.jdojo.person/src/com.jdojo.person/com/jdojo/person/Person.java

使用独立于任何IDE的命令行工具进行实验是很有启发性的。我已经说明了这个案例here