Maven项目引入ZXing报NoClassDefFoundError:WriterException问题咨询
项目背景
当前尝试开发二维码生成功能,用于存储学号、姓名、本地计算机MAC地址等信息(现阶段先在桌面电脑测试,后续将部署到各台树莓派设备运行)。
问题相关错误

相关Java代码
注:代码中的数据链接仅为测试使用,可忽略。
public static void main(String[] args) throws Exception { MACFinder GM = new MACFinder(); GM.getMac(); System.out.println(); try { GM.generateQRCodeImage(); } catch (WriterException e) { System.out.println("二维码生成失败,触发WriterException异常"); } catch (IOException e) { System.out.println("二维码生成失败,触发IOException异常"); } catch (NotFoundException e) { System.out.println("未找到ZXing相关类库"); } } public void generateQRCodeImage() throws WriterException, IOException, NotFoundException { String data = "https://www.youtube.com/watch?v=qzYpgbP8RHA"; String filepath = "C:\\Users\\JmJ23\\Documents\\Code\\Internship Code"; QRCodeWriter qrCodeWriter = new QRCodeWriter(); BitMatrix bitMatrix = qrCodeWriter.encode(data, BarcodeFormat.QR_CODE, 250, 250); Path path = FileSystems.getDefault().getPath(filepath); MatrixToImageWriter.writeToPath(bitMatrix, "PNG", path); }
POM.xml依赖配置
<dependency> <groupId>com.google.zxing</groupId> <artifactId>core</artifactId> <version>3.3.0</version> </dependency> <dependency> <groupId>com.google.zxing</groupId> <artifactId>javase</artifactId> <version>3.3.0</version> </dependency>
排查方案
已配置Maven依赖仍触发NoClassDefFoundError,本质是运行时类路径未加载到ZXing对应类,按以下优先级逐一排查:
- 检查Maven依赖拉取状态:打开IDE的Maven面板执行重新加载项目,进入本地Maven仓库
com/google/zxing目录,确认3.3.0版本的core、javase两个jar包完整存在;若目录下存在.lastUpdated后缀的损坏缓存文件,直接删除整个zxing目录后重新拉取依赖。 - 检查运行时类路径配置:如果是直接在IDE中运行main方法,打开对应运行配置,确认两个ZXing依赖没有被设置为
Provided作用域,且已被勾选加入运行时类路径。 - 修正代码路径错误:当前定义的
filepath仅为文件夹路径,未指定最终生成的二维码文件名,MatrixToImageWriter.writeToPath方法要求传入完整的文件路径而非目录,需修改为类似C:\\Users\\JmJ23\\Documents\\Code\\Internship Code\\qrcode.png的格式,否则类加载正常后也会抛出IO异常。 - 打包运行场景检查:如果是将项目打包为jar后运行报错,需要在pom.xml中配置
maven-shade-plugin或maven-assembly-plugin将第三方依赖打入最终jar包,默认maven打包逻辑不会包含第三方依赖,运行时必然找不到类。 - 依赖冲突排查:在项目根目录执行
mvn dependency:tree命令查看依赖树,确认是否有其他依赖引入了不同版本的ZXing包导致类版本冲突,若存在冲突版本直接用exclusion标签排除即可。
内容的提问来源于stack exchange,提问作者johnl5124
相关产品推荐
相关产品推荐

