我已经创建了一个库,我们称之为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
,如果它有任何区别。