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

如何为GeoTools项目确定正确Java 11模块名及解决Envelope类缺失问题?

解决GeoTools Java 11模块系统迁移的依赖问题

1. 如何查找GeoTools的Java模块名

由于GeoTools早期版本未提供显式的module-info.java,属于自动模块,获取正确模块名可通过以下几种实用方式:

  • 查看JAR的MANIFEST.MF:打开GeoTools依赖JAR文件,查看META-INF/MANIFEST.MF中的Automatic-Module-Name字段,这是官方指定的模块名(如果存在)。
  • 从JAR文件名推导:若没有Automatic-Module-Name,自动模块名由JAR文件名生成——去掉版本号,将连字符、下划线替换为点。例如gt-cql-28.2.jar对应的自动模块名是gt.cql。
  • 使用jdeps工具分析:通过JDK自带的jdeps命令查看模块信息,执行:
    jdeps --list-deps path/to/gt-cql.jar
    
    输出结果中会显示该JAR对应的模块名。

针对你遇到的gt-cql模块无法解析的问题,大概率是模块名使用错误,建议用上述方法确认后替换,比如实际模块名可能是gt.cql而非org.geotools.cql。

2. 解决org.locationtech.jts.geom.Envelope类缺失问题

org.locationtech.jts.geom.Envelope属于JTS Topology Suite库,该库已提供显式模块支持,对应的模块名为org.locationtech.jts。你只需在module-info.java中添加:

requires org.locationtech.jts;

同时确保你的Maven/Gradle依赖中已引入JTS相关包(通常GeoTools依赖会间接引入,若缺失需手动添加)。

额外提示

GeoTools官方Java 11迁移文档中提到的依赖,在模块系统中需要对应自动模块名,建议你先确认所有依赖JAR的模块名,再逐一添加requires语句。如果遇到依赖传递问题,可以用jdeps --module-path . --check your-module-name来分析模块依赖缺口。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 04:45:41