永发信息网

已经定义了MyTest类为啥还发生java.lang.ClassNotFoundException :MyTest。

答案:1  悬赏:20  手机版
解决时间 2021-02-04 08:42
package Swing;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import java.lang.reflect.Method;

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
@interface Testable{}

class MyTest
{
@Testable
public static void m1(){}
public static void m2(){}
@Testable
public static void m3()
{
throw new RuntimeException("Boom");
}
public static void m4(){}
@Testable
public static void m5(){}
public static void m6(){}
@Testable
public static void m7()
{
throw new RuntimeException("Crash");

}
public static void m8(){}

}

class TestProcessor
{
public static void process(String clazz)throws ClassNotFoundException
{
int passed=0;
int failed=0;
for(Method m:Class.forName(clazz).getMethods())
{
if(m.isAnnotationPresent(Testable.class))
{
try
{
m.invoke(null);
passed++;
}
catch(Exception ex)
{
System.out.println("方法"+m+ "运行失败,异常为:"+ex.getCause()+"\n");
failed++;
}
}
}
System.out.println("一共运行了:"+(failed+passed)+"个方法,其中\n"+
"失败了:"+failed+"个\n"+
"成功了:"+passed+"个\n");
}
}

public class RunTests
{
public static void main(String[] args)throws Exception
{
TestProcessor.process("MyTest");
}

}
产生的异常如下

Exception in thread "main" java.lang.ClassNotFoundException: MyTest
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:188)
at Swing.TestProcessor.process(RunTests.java:46)
at Swing.RunTests.main(RunTests.java:72)
最佳答案
TestProcessor.process("MyTest");
应该是路径问题
改成TestProcessor.process("Swing.MyTest");试试
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
我想问一些生活困难的70后和80后90后,生活这
老人经常头晕呕吐是什么原因造成的
花月缘的意思是什么啊?知道的请说下!
青岛多彩扎啤美食广场地址在什么地方,想过去
苏州到兴化要多长时间
用人民警察证件夹装驾照违法吗
孕激素对生殖器官作用的影响,不正确的是A.通
到法院拿离婚生效书要本人去吗
面对面面馆地址在什么地方,想过去办事
末号的意思是什么啊?知道的请说下!
阿里巴巴用什么支付
南充市商业银行atm地址有知道的么?有点事想
若16的9m次方=a,4的37n次方=a分之一,且规定2
当当网既然可以在线阅读为什么还要出售电子书
上海市松江区九亭镇理虹桥高铁站有多远
推荐资讯
花星期(桂林路店)地址在什么地方,想过去办事
恣游的意思是什么啊?知道的请说下!
故漳线在什么地方啊,我要过去处理事情
让人,乃众妙之门 为什么不是论点
男人用脸摩擦女人的脸是什么意思
淮阳施华洛婚纱摄影地址在什么地方,我要处理
身高169,体重130斤,衣服是多少L,裤子呢?
闻王昌龄左迁龙标遥有此寄怎样画分
周公解梦梦见有人结婚
【数据透视表】Excel中数据透视表的数据来源
CH2=CH-CH=CH2+Br2 反应,1,2主要还是1,4加成
富迪纯水机襄阳服务中心怎么去啊,有知道地址
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?