线程“main”java.lang.NoClassDefFoundError中的异常。 - 将库与另一个库一起使用

时间:2014-07-22 22:17:35

标签: java classpath libraries

我已经创建了一个库,我们称之为MyLib。这个库MyLib使用Google Guava库,因此我在Guava的库文件夹中有MyLib个jar。

现在我已经创建了一个新项目,我将使用MyLib。我已将MyLib导入到我的项目中,当我运行它时,我得到了这个例外:

Exception in thread "main" java.lang.NoClassDefFoundError: com/google/common/eventbus/EventBus
    at com.dwnz.mylib.<init>(SchoolBus.java:29)
    at com.dwnz.mylib.getAsyncBusToMainThread(SchoolBus.java:61)
    at view.MainFrame.<init>(MainFrame.java:91)
    at view.MainFrame.newInstance(MainFrame.java:586)
    at view.Main.main(Main.java:98)
Caused by: java.lang.ClassNotFoundException: com.google.common.eventbus.EventBus
    at java.net.URLClassLoader$1.run(URLClassLoader.java:372)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:360)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 5 more
Java Result: 1

我用Google搜索,发现在运行时JVM无法加载课程。如果我将Google的Guava jar作为库添加到我的项目中,我不会得到这个例外。

我在这里不明白的是,如果我将Guava jar添加到MyLib库中,为什么JVM不能从MyLib库加载Guava的类? 我怎样才能让它以这种方式工作?否则我觉得创建这个库有点没用。

我正在使用NetBeans,如果它有任何区别。

0 个答案:

没有答案