快速個人背景:我幾個月前被其他開發人員都是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