使用Mapsforge Mapfile-writer插件与Osmosis生成地图时加载失败求助
解决Osmosis加载Mapsforge Mapfile-writer插件失败的问题
使用Mapsforge Mapfile-writer插件搭配Osmosis编译自定义地图时,出现插件加载失败的报错,具体错误信息如下:
Jun 16, 2023 9:09:37 AM org.openstreetmap.osmosis.core.Osmosis run INFO: Osmosis Version 0.48.3 Jun 16, 2023 9:09:37 AM org.openstreetmap.osmosis.core.Osmosis main SEVERE: Execution aborted. org.openstreetmap.osmosis.core.OsmosisRuntimeException: Unable to load plugin class (mapsforge-map-writer-master-20230526.153436-506.jar). at org.openstreetmap.osmosis.core.TaskRegistrar.loadPluginClass(TaskRegistrar.java:340) at org.openstreetmap.osmosis.core.TaskRegistrar.loadPlugin(TaskRegistrar.java:319) at org.openstreetmap.osmosis.core.TaskRegistrar.initialize(TaskRegistrar.java:84) at org.openstreetmap.osmosis.core.Osmosis.run(Osmosis.java:81) at org.openstreetmap.osmosis.core.Osmosis.main(Osmosis.java:37) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) at java.base/java.lang.reflect.Method.invoke(Method.java:578) at org.codehaus.plexus.classworlds.launcher.Launcher.launchStandard(Launcher.java:330) at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:238) at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415) at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356) at org.codehaus.classworlds.Launcher.main(Launcher.java:47) Caused by: java.lang.ClassNotFoundException: mapsforge-map-writer-master-20230526.153436-506.jar at org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass(SelfFirstStrategy.java:50) at org.codehaus.plexus.classworlds.realm.ClassRealm.unsynchronizedLoadClass(ClassRealm.java:271) at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:247) at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:239) at org.openstreetmap.osmosis.core.TaskRegistrar.loadPluginClass(TaskRegistrar.java:338) ... 11 more
解决方案
修正插件配置内容:错误核心是Osmosis把jar文件名当成了插件类名加载。打开Osmosis的
plugins.conf配置文件,将其中的mapsforge-map-writer-master-20230526.153436-506.jar替换为插件的完整类名org.mapsforge.map.writer.osmosis.MapFileWriterPlugin。确认插件jar放置路径:确保插件jar文件放在Osmosis安装目录下的
plugins文件夹中;如果使用自定义路径,启动Osmosis时需通过参数指定插件目录,示例命令:osmosis -Dplugin.dir=/your/custom/plugin/path [其他编译参数]匹配版本兼容性:你当前使用的是Osmosis 0.48.3,建议下载与该版本兼容的Mapsforge Mapfile-writer稳定版插件,避免使用快照版(如你当前的master快照包),减少版本不兼容导致的类加载问题。
检查Java环境:确保使用的Java版本符合要求,Osmosis 0.48.3兼容Java 8及以上版本,避免高版本Java带来的兼容性冲突。
内容的提问来源于stack exchange,提问作者saad
相关产品推荐
相关产品推荐

