Geotools入门基础代码运行报错:ClassNotFoundException: javax.measure.spi.SystemOfUnits
Geotools代码报错:ClassNotFoundException: javax.measure.spi.SystemOfUnits 解决办法
这个错误的核心原因是项目缺少了单位测量相关的依赖包,Geotools在处理空间数据的单位转换、坐标参考系等逻辑时依赖javax.measure相关类。
解决步骤
- 如果使用Maven管理依赖,在
pom.xml中添加以下依赖:
<dependency> <groupId>javax.measure</groupId> <artifactId>unit-api</artifactId> <version>1.0</version> </dependency> <dependency> <groupId>tec.units</groupId> <artifactId>unit-ri</artifactId> <version>1.0.3</version> </dependency>
- 如果使用Gradle,在
build.gradle中添加:
implementation 'javax.measure:unit-api:1.0' implementation 'tec.units:unit-ri:1.0.3'
- 手动导入jar包的话,需要下载
unit-api-1.0.jar和unit-ri-1.0.3.jar,添加到项目的类路径中。
额外代码优化建议
你的入门代码还可以补充两个关键点,避免后续其他问题:
- 替换代码中的
"filepath"为实际的矢量文件路径(比如shapefile的.shp文件路径) - 增加
DataStore的非空判断,防止文件无法识别时报空指针:
DataStore dataStore = DataStoreFinder.getDataStore(map); if (dataStore == null) { System.err.println("无法识别该文件,请检查文件路径或文件格式"); return; }
内容的提问来源于stack exchange,提问作者tobithe1st
相关产品推荐
相关产品推荐

