快速个人背景:我几个月前被其他开发人员都是PHP开发人员的公司聘为唯一.NET开发人员(C#)。工作一周后,我被告知他们想改用Java而不是.NET。不是一个理想的情况,但我试图让它工作。Java库和类路径问题
我不认为我理解项目库和类路径之间的关系。我正在使用NetBeans 6.7.1进行开发。我目前的项目是创建一个应用程序,将更新多个商家来源(易趣,亚马逊等)。我创建了一个处理这些更新计划的类库项目。我们将其称为更新。
我正在为各种来源(例如eBay)创建类库项目。我将ebay项目添加到更新项目作为库。在IDE中有一个框显示“在类路径上生成项目”,该项目被选中。
最后,现在我有了一个库中引用的更新项目(使eBay的项目,现在2个库深)以同样的方式一点点控制台应用程序。它适用于Update项目中的代码。
这工作正常,直到我实例化ebay项目中的类(从更新项目通过控制台应用程序)。在这一点上,我收到了
Exception in thread "main"
java.lang.NoClassDefFoundError
这是
Caused by: java.lang.ClassNotFoundException
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
这些项目都建立罚款,但这种运行时异常是杀害我。我不知道我是否真的明白将项目库添加到项目中的作用,以及是否还需要做更多的事情才能使课程更容易访问。我习惯于能够添加对DLL的引用并且很好。我不明白为什么我没有得到任何编译器错误或构建错误,但我得到有关可访问性的运行时错误。我猜测classpath是一个我不明白的东西,尽管我认为这个问题可能与其他东西完全相关。
感谢您的帖子。事实证明,这与NetBeans中的引用问题有关(请参阅我自己对此问题的回答)。我假设一个项目是自包含的(不正确的)假设 - 如果它自己设置了所有的引用,那么使用该项目的任何东西都可以引用项目本身 - 而不需要引用所有的片断,所引用的项目也是使用。 – 2009-11-12 20:27:01