You need to enable JavaScript to run this app. IntelliJ下Java用PDFBox读PDF报CMapParser构造方法不存在的NoSuchMethodError
优惠活动
大模型
产品
解决方案
定价
更多

IntelliJ下Java用PDFBox读PDF报CMapParser构造方法不存在的NoSuchMethodError

报错核心原因

你遇到的NoSuchMethodError: 'void org.apache.fontbox.cmap.CMapParser.<init>(boolean)'异常,根源是引入的PDFBox与配套FontBox版本不兼容。
从你当前项目导入的jar包列表可以看到,你是手动单独下载、零散导入的独立jar包:Apache PDFBox运行时需要调用对应配套版本中才存在的、带boolean参数的CMapParser构造方法,但你本地加载的FontBox版本远低于PDFBox的匹配要求,类中根本不存在这个构造方法,才会触发方法找不到的运行时错误。

具体解决操作
  • 第一,把项目中所有手动导入的、和pdfbox、fontbox相关的独立jar包全部删除,清除旧的版本冲突残留
  • 第二,统一引入一套版本完全对齐的Apache PDFBox官方稳定组件,不要零散单独拉取单个jar包。由于你要读取的是内嵌日文字体的PDF,需要同时引入和PDFBox同版本的fontbox、文本编码解析配套依赖,才能正常解析日文字形对应的CMap映射
  • 第三,在IntelliJ中刷新项目的依赖配置,等待所有jar包完整加载后再重新运行程序

关键注意事项:PDFBox和FontBox是强版本绑定的组件,两个包的版本号必须完全一致,绝对不能跨大版本混用以旧代新或者以新代旧,否则会反复触发类、方法找不到的错误。


代码验证

你当前写的PDF加载、文本提取的业务逻辑本身没有问题,只要依赖版本匹配,不需要修改原有代码就能正常运行。如果后续提取日文内容出现乱码,可以在初始化PDFTextStripper时显式指定文本解码编码参数,降低编码适配问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.29 16:06:05