Google Reflections对象不是实例

时间:2014-06-19 22:54:16

标签: java google-reflections

我试图根据我的自定义注释的值创建一个调用对象的某些实例的类,它发现,Google Reflection是一个不错的选择,但我无法实例化它,我是什么做错了?

我试试

public class TesteDeAnotacoes {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {             
        Reflections reflections = new Reflections("testedeanotacoes.test");
    }
}

并出现以下错误:

Exception in thread "main" java.lang.NoClassDefFoundError: com/google/common/base/Predicate
    at testedeanotacoes.TesteDeAnotacoes.main(TesteDeAnotacoes.java:26)
Caused by: java.lang.ClassNotFoundException: com.google.common.base.Predicate
    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:425)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
    ... 1 more
Java Result: 1

我的项目

project view

我错过了一些细节,因为它不起作用?

1 个答案:

答案 0 :(得分:3)

这显然是一个依赖性问题,它与任何库都是正交的。

最好的解决方案是使用一个体面的构建系统,并轻松获得传递依赖。 确保熟悉Maven(或Gradle,SBT,...),并查看pom.xml,尤其是依赖项部分。

其他解决方案是手动下载所需的库并构建类路径(java -cp ...),或者,如果可用的话,获取一个嵌入所有依赖项的fat-jar。