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

求助:Java 9模块化中javax.ws.rs.core.MediaType对应的requires模块名

Java 9模块化中jboss-jaxrs-api_2.0_spec的模块声明问题
  • 获取准确自动模块名的最可靠方法
    别靠猜测模块名,直接用Java自带的jar命令解析目标JAR文件:

    jar --file=jboss-jaxrs-api_2.0_spec-1.0.0.Final.jar --describe-module
    

    执行后会直接输出该JAR对应的自动模块名,把这个名字放到module-info.java的requires语句里就能解决编译错误。

  • 手动推导自动模块名的规则(供参考)
    自动模块名的生成逻辑大致是:

    1. 去掉JAR文件名末尾的版本号(比如-1.0.0.Final)
    2. 将文件名中的下划线_替换为点.
    3. 忽略-spec这类特殊后缀
      按这个规则,你这个JAR的自动模块名应该是jboss.jaxrs.api.2.0.spec,但还是建议用上面的命令验证准确性。
  • 备选解决方案
    如果自动模块的方式存在问题,可以把该JAR转换为显式模块:

    1. 解压目标JAR文件
    2. 在根目录添加module-info.java,示例内容如下:
      module jboss.jaxrs.api.2.0.spec {
          exports javax.ws.rs.core;
          // 按需添加其他需要导出的JAX-RS相关包
      }
      
    3. 重新编译打包成JAR,替换原文件后,在你的模块中添加requires jboss.jaxrs.api.2.0.spec;即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 21:32:35