You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java 9模块系统requires/exports配置问题求助

解决Java 9模块requires/exports配置问题

首先,你的问题核心出在模块名称不匹配和缺少必要的包导出声明上,手动添加依赖只是绕开了模块系统的规范流程,确实不是正确做法。下面一步步帮你修正:

1. 修正模块声明的名称

你的app模块的module-info.java里写的module name是错误的,模块名称必须和你的模块实际标识(通常是目录名)一致。正确的写法应该是:

// app/src/module-info.java
module app {
    requires hello;
}

同时确保hello模块的module-info.java模块名与模块目录一致:

// hello/src/module-info.java
module hello {
    // 导出hello包,让app模块能访问里面的Hello类
    exports hello;
}

2. 补充包导出声明

你的Hello.java位于hello/hello目录下(即包名为hello),如果hello模块不添加exports hello;声明,哪怕app模块写了requires hello;,也无法访问这个包下的类——这正是IntelliJ导入提示红色的关键原因。

3. 让IntelliJ自动识别模块依赖

完成上述修改后,你不需要手动在项目结构里添加依赖,IntelliJ会通过模块声明自动识别依赖关系:

  • 确认两个模块都是IntelliJ中的Java模块(而非普通Java项目)
  • 重新同步项目:如果用Gradle/Maven,点击对应工具窗口的刷新按钮;纯IntelliJ项目可以重启IDE或重新导入项目

验证修改

现在在app/src/start/main.java中导入hello.Hello:

import hello.Hello;

public class main {
    public static void main(String[] args) {
        Hello.sayHello(); // 假设Hello类包含该方法
    }
}

此时导入语句应该不再显示红色,运行项目也能正常访问Hello类的内容。

内容的提问来源于stack exchange,提问作者HahnSolo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 03:58:50