当前位置: 首页 > 知识库问答 >
问题:

Java9-无法作为模块解析

殷学
2023-03-14

非常简单的用例,我使用的是EclipseOxygen4.7。3a,包括来自Java9的支持。我有两个项目是Java 9项目:

- projectOne
| - src
| - module-info.java
  | - com
    | - package1
      | - first
        | Classificator.java

- projectTwo
| - src
| - module-info.java
  | - com
    | - package2
      | - second
        | Classifiable.java

我想在分类器中使用Classifiable类,因此我尝试将第二个模块导入第一个项目。

模块信息。java项目1:

module projectOne   {
    requires projectTwo;
}

模块信息。java项目2:

module projectTwo   {

}

Eclipse给了我错误:

项目二不能解析为模块

我是否必须将所有Java项目集中在一个“主项目”下,以便让Eclipse知道所有这些模块在其中都是可用的?还是我错过了什么?

共有2个答案

长孙硕
2023-03-14

虽然作为服务布线当然是一种可行的方法(如另一个答案中所述),但让我补充一点,当然,要求也可以工作。

第一种方法可能缺少的一点是:Eclipse仍然需要知道在哪里查找模块。在现实项目中,这通常由您选择的构建工具加上m2e或buildship之类的插件来实现。

如果未使用此类插件,则应在projectprojectOne的生成路径中添加正常的项目依赖项,以使projectprojectTwo可见。一旦项目位于生成路径上,项目定义的模块就可以在模块信息中的引用中解析。java

邢勇
2023-03-14

不,您不需要它们位于同一目录中。理想情况下,您的项目一模块定义了一些使用,它们由项目二模块实现(反之亦然)。获取所用接口的运行时实现。为此,两个JAR/类都必须位于模块路径上。

有关模块构建、多模块构建的更多信息,。。。你可以参考这个链接。即使您不使用gradle,它关于Java9模块构建的教程也非常有趣,并提供了一些见解。

 类似资料:
  • 我的项目依赖于Netty Epoll Transport。以下是依赖关系: 无法派生模块描述符:netty-transport-native-epoll-4.1.17。final-snapshot-linux-x 86_64.jar netty.transport.native.epoll:无效的模块名:'native'不是Java标识符 有什么变通办法吗?(当然,除了“释放正确的netty神器”

  • 主要内容:模块系统特征,创建模块Java 9是一种称为模块的新型编程组件。模块是一个自我描述的代码和数据集合,并有一个名称来标识它。 模块系统特征 使用模块组件,Java 9中增加了以下增强功能 - 引入了一个新的可选阶段,即链接时间。这个阶段介于编译时间和运行时间之间。 在此阶段,可以组合和优化一组模块,使用jlink工具制作自定义运行时映像。 javac,jlink和java有额外的选项来指定模块路径,它们进一步定位模块的定

  • 食氧;视窗7;JDK 9决赛从9日开始,21日结束;JUnit4.12和现有的应用程序。作为起点,可以编译、执行应用程序,并且所有JUnit测试都显示为绿色。现在我们使用eclipse生成文件模块信息。JAVA结果是: 但有一个错误:junit无法解析为模块。问题是:如何告诉文件junit没有定义任何模块,应该在兼容模式下运行?

  • 问题内容: 我见过几篇与此类型的错误相关的文章。但是我无法解决。 我的package.json: 我在webpack上遇到以下错误: 但是在我做的cmd行中 我得到3.10.10。反应场在那里。但是我不知道为什么它仍然会给出这个错误。 当我通过npm安装“ npm install react-dom”并运行webpack时,出现以下错误: 请帮忙。 问题答案: 未安装Issue ,当您点击时,它会

  • 我在eclipse中遇到以下错误: 我尝试了mockito-core.jar3.0.0的升级版本,但问题没有解决。Eclipse版本是:2018-12 (4.10.0) 对如何解决这个问题有什么建议吗?

  • 我正在学习JavaFx并尝试制作一个可重用的组件。该项目正在VSCode中开发。该项目非常简单,涉及启动器和可重用组件。我正在重构,当添加模块时,一切都停止了工作,我无法继续重构。 module-info中显示的错误是:< code>javafx.controls无法解析为模块。虽然很奇怪,但是如果我告诉Maven更新项目,在一些罕见的情况下,错误会告诉我模块是空的或者不存在。 源代码(实验分支)