首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不能让org.reflections.Reflections工作,NoClassDefFoundError

不能让org.reflections.Reflections工作,NoClassDefFoundError
EN

Stack Overflow用户
提问于 2015-09-09 15:29:15
回答 3查看 9.5K关注 0票数 2

我不知道我在反思中做错了什么。下面是一个例子,我有一个包testreflections.test,里面有类MainTestClass

主修班:

代码语言:javascript
复制
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());
         }
    }
}

TestClass:

代码语言:javascript
复制
public class TestClass {

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

现在,我只需要使用junit Test注释获得所有方法(只需1)。这应该添加一个到集合,并打印出适当的信息。但是,eclipse发出了以下错误:

代码语言:javascript
复制
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
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-09-09 18:39:32

结果,我只需要将Javaassist添加到类路径中。

票数 1
EN

Stack Overflow用户

发布于 2015-09-09 16:44:30

我建议您解决org.reflections.Reflections的依赖关系。最简单的方法是使用这里描述的maven。否则,所需的类路径将被描述为这里。确保下载所有必需的jar文件,并将它们包含在Eclipse项目的类路径中。

在我的评论中,我忽略了您只想找到注释的部分。使用标准Java,您可以使用getDeclaredAnnotations()方法的java.lang.reflect.Method。但是,收集所有方法并不是那么简单。

票数 1
EN

Stack Overflow用户

发布于 2017-03-10 11:20:54

请用. /hydra-analytics/gobblin-dist/lib/reflections-0.9.10.jar,/hydra-analytics/gobblin-dist/lib/guava-retrying-2.0.0.jar,/hydra-analytics/gobblin-dist/lib/javassist-3.18.2-GA.jar,.有命令

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32483659

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档