java main 方法测试提示找不到类,报NoClassDefFoundError异常,弹出"Could not find the main class..Programe will exit"窗口...

本文档描述了在运行Java单元测试时遇到的`NoClassDefFoundError`错误,该错误通常由于测试类路径配置不正确引起。解决方案是将测试源代码目录从`src/test`更改为`src/main/test`,并相应地调整BuildPath设置。按照此方法修复后,单元测试的main方法能够正常执行并输出预期结果。
摘要由CSDN通过智能技术生成

一、问题描述

运行单元测试Test类的main方法失败,直接弹出错误窗口提示”Could not find the main class:search Test. Program will exit.“,后台日志抛出"java.lang.NoClassDefFoundError: search/Test",如下所示java.lang.NoClassDefFoundError: search/Test@b@Caused by: java.lang.ClassNotFoundException: search.Test@b@    at java.net.URLClassLoader$1.run(URLClassLoader.java:202)@b@    at java.security.AccessController.doPrivileged(Native Method)@b@    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)@b@    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)@b@    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)@b@    at java.lang.ClassLoader.loadClass(ClassLoader.java:247)

二、解决步骤

1. 这个是因为测试节点路径src/test映射的classpath是taget/test-classes,和默认classpath层级(src/main/java..src/main/resources)不一致造成的,错误如下图所示

1b9dd35b3b9d1b7344972000eeff9dc2.png

2. 将原来测试节点"src/test"修改为"src/main/test",和“src/main/java、src/main/resources”,同时修改Build Path,如下图所示

90aef4908b2887932698bc0f67813f71.png

3. 再运行main方法,能正常输出,如输出结果所示

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值