java - 无法让 org.reflections.Reflections 工作,NoClassDefFoundError

标签 java annotations noclassdeffounderror

我不确定自己在反射方面做错了什么。所以这是一个例子,我有一个包 testreflections.test,里面有类 MainTestClass

主类:

public class Main {

    public static void main(String[] args) {
        Reflections reflections = new Reflections("testreflections.test");
        //Reflections reflections = new Reflections("testreflections.test.TestClass");//I also tried this
        Set<Method> resources =
            reflections.getMethodsAnnotatedWith(org.junit.Test.class);

        System.out.println(resources.size());

         for (Method set : resources) {
             System.out.println(set.toString());
         }
    }
}

测试类:

public class TestClass {

    @Test
    public void testMethod() {
        System.out.println("This is a test");
    }
}

现在,我只是应该获取所有带有 junit Test 注释的方法(这只是 1)。这应该将一个添加到集合中,并为它打印出适当的信息。然而,eclipse 吐出这个错误:

Exception in thread "main" java.lang.NoClassDefFoundError: javassist/bytecode/ClassFile
at org.reflections.adapters.JavassistAdapter.getOfCreateClassObject(JavassistAdapter.java:100)
at org.reflections.adapters.JavassistAdapter.getOfCreateClassObject(JavassistAdapter.java:24)
at org.reflections.scanners.AbstractScanner.scan(AbstractScanner.java:30)
at org.reflections.Reflections.scan(Reflections.java:238)
at org.reflections.Reflections.scan(Reflections.java:204)
at org.reflections.Reflections.<init>(Reflections.java:129)
at org.reflections.Reflections.<init>(Reflections.java:170)
at org.reflections.Reflections.<init>(Reflections.java:143)
at testreflections.test.Main.main(Main.java:10)
Caused by: java.lang.ClassNotFoundException: javassist.bytecode.ClassFile
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 9 more

最佳答案

事实证明我只需要添加 Javaassist到类路径。

关于java - 无法让 org.reflections.Reflections 工作,NoClassDefFoundError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32483659/

相关文章:

java - JUnit 和 Contiperf : Properties file to dynamically create contiperf annotation values

java - 运行 Scala jar 文件时出现 NoClassDefFoundError

java - 为什么这个方法不打印异常参数中的消息?

java - 自定义注解

java - 使用 Java 8 计算两个日期之间的天数,同时忽略一周中的某些天数

java - getDeclaringClass 导致未能延迟初始化异常

java - NoClassDefFound 表示找不到该类?

eclipse - 运行 Tomcat + Spring + Maven 项目时出现 NoClassDefFoundError (Eclipse)

java - 使用分布式缓存的新 api 的问题

Java多线程使用同步不是线程安全的