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

NetBeans 18 Maven JavaFX 20项目无法识别Smack依赖求助

解决Smack依赖在NetBeans模块系统中“模块未找到”的问题

问题根源

Smack 4.4.0的依赖jar属于自动模块(未内置module-info.class),无法直接通过包名org.igniterealtime.smack在module-info.java中声明依赖,必须使用每个jar对应的自动模块名。

解决方案

  1. 修正module-info.java的依赖声明
    每个Smack依赖的自动模块名由其artifactId转换而来(短横线替换为点),修改后的module-info.java示例:

    module your.project.module.name {
        // 对应smack-java8依赖
        requires org.igniterealtime.smack.java8;
        // 对应smack-tcp依赖
        requires org.igniterealtime.smack.tcp;
        // 对应smack-im依赖
        requires org.igniterealtime.smack.im;
        // 对应smack-extensions依赖
        requires org.igniterealtime.smack.extensions;
    }
    

    替换your.project.module.name为你实际的模块名。

  2. 修复NetBeans识别问题

    • 右键项目 → 清理并构建,确保Maven重新解析依赖并生成正确的模块路径
    • 检查项目模块配置:右键项目 → 属性 → 模块,确认上述自动模块已添加到“模块依赖”列表中
    • 若仍未识别,删除本地Maven仓库(.m2/org.igniterealtime/smack)中的Smack缓存文件,重新执行构建让Maven重新下载依赖
  3. 备选方案:禁用模块系统
    如果你不需要使用Java模块系统,可以直接删除项目中的module-info.java文件,此时NetBeans会自动以传统类路径方式加载Smack依赖,导入org.igniterealtime.smack相关包即可正常使用。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 19:05:10