非常简单的用例,我使用Eclipse Oxygen 4.7.3a,其中包括Java 9的支持。我有两个项目是Java 9项目:
- projectOne
| - src
| - module-info.java
| - com
| - package1
| - first
| Classificator.java
- projectTwo
| - src
| - module-info.java
| - com
| - package2
| - second
| Classifiable.java
我想在Classifiable
中使用Classificator
类,所以我尝试将第二个模块导入到第一个项目中。
module-info.java项目1:
module projectOne {
requires projectTwo;
}
module-info.java项目2:
module projectTwo {
}
Eclipse给了我错误:
projectTwo无法解析为模块
我是否必须在一个“主项目”下收集所有Java项目才能让Eclipse知道所有这些模块都可以在其中使用?或者我错过了什么?
答案 0 :(得分:2)
不,您不需要它们在同一目录中。理想情况下,您的location
模块定义了一些project-one
,它们由uses
模块实现(反之亦然)。获取已使用接口的运行时实现。为此,两个jar /类必须位于模块路径上。
有关模块构建,多模块构建的更多信息,......您可以参考this link。即使你不使用gradle,它的tutorial on java 9 module build也非常有趣,并提供了一些见解。
答案 1 :(得分:0)