将OpenStreetMap(.osm)转为Linker Address Map(.map)时遇NoClassDefFoundError的解决办法
OSM转Mapsforge .map文件报错解决方法
问题原因
执行Osmosis转换命令时出现java.lang.NoClassDefFoundError: org/mapsforge/core/model/BoundingBox错误,本质是当前Osmosis环境缺少Mapsforge核心依赖库——--mw(MapFileWriter)任务依赖Mapsforge组件,而这些组件未包含在默认Osmosis安装包中。
你的执行命令:
osmosis --rx file=mapone.osm --mw kerala.map type=hd bbox=9.4692,77.1366,9.3737,76.9621
解决步骤
- 匹配兼容版本:你使用的是Osmosis 0.40.1,需下载与之版本兼容的Mapsforge核心库和Map Writer插件jar包。
- 添加依赖到Osmosis:将下载的jar包复制到Osmosis安装目录的
lib文件夹(例如C:\Users\ajual\Desktop\osmosis-0.40.1\lib)。 - 重新执行命令:依赖添加完成后,重新运行原转换命令。
- 替代方案:若手动配置依赖麻烦,可直接使用Mapsforge官方提供的完整转换工具,其已整合所有必要依赖,无需额外配置。
内容的提问来源于stack exchange,提问作者John
相关产品推荐
相关产品推荐

