2011-07-29 111 views
0

我是Eclipse的新手。我試圖連接到SQLLite數據庫。我從http://www.zentus.com/sqlitejdbc/usage.html以下例子。我下載jar文件,導入到項目,但一旦我運行的代碼,我得到以下異常Eclipse無法找到org.sqlite.JDBC(Java)

Exception in thread "main" java.lang.ClassNotFoundException: org.sqlite.JDBC 
    at java.net.URLClassLoader$1.run(Unknown Source) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(Unknown Source) 
    at java.lang.ClassLoader.loadClass(Unknown Source) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) 
    at java.lang.ClassLoader.loadClass(Unknown Source) 
    at java.lang.Class.forName0(Native Method) 
    at java.lang.Class.forName(Unknown Source) 
    at com.amazon.IP2Zip.Test.main(Test.java:7) 

好像它是不是能夠找到類,即使我導入的jar文件到項目中。

任何幫助,將不勝感激:)

+0

你是如何將它導入到項目中的? 「添加到建立路徑...」? – aioobe

+0

當你將一個'import org.sqlite.JDBC;'添加到源文件時,eclipse會說些什麼? – rsp

回答

2

右鍵單擊該項目並選擇從選擇構建路徑屬性,並有在庫部分中選擇添加外部JAR的並瀏覽到jar文件的保存位置。

希望這將這樣的伎倆

1

按照拋出java.lang.ClassNotFoundException,類不能在CLASSPATH中找到。嘗試通過做這樣的事情把路徑放到構建路徑中: -

Project-> BuildPath-> libraries - > Add External jars。

+1

不是他的工作。這是一個錯誤。 xerial的作者需要修復它。 – Kashyap

1

這可能不適用於您的情況,但我只是解決了類似的問題,似乎違反邏輯。關於這個話題有幾個類似的問題,但都解決了我的問題。我想我可能會提及我遇到的問題。

我下載了我通過快速搜索獲得的JAR。我第一次試圖通過Eclipse來包含這個庫,我很熟悉這個庫。我像往常一樣將JAR添加到構建路徑中,然後繼續運行我的程序,期望得到一些愚蠢的輸出,以確認找到了org.sqlite.JDBC。不幸的是,我遇到了ClassNotFoundException。

我看了看JAR的內容,果然,org.sqlite.JDBC似乎在那裏。在那之後,我想我一定做了錯事,並且搜索了一堆類似的問題,以確定我出錯的地方。唯一的問題是,他們中的大多數人正在推薦我剛纔做的事情!然後我認爲可能是我的Eclipse設置有些奇怪,所以我通過命令行手動運行它(指定classpath)。即使如此,我遇到了一個ClassNotFoundException

在我的繩索末端,我接着考慮了我認爲極不可能發生的事情的可能性 - JAR發生了某種程度的損壞 - 這次直接進入項目下載頁面以獲得新的副本。在將Eclipse的JAR添加到構建路徑中時,我注意到它的結構與之前的結構略有不同。然後我試圖運行它,並且......它工作了!所以在極端情況下,你下載了一個損壞的JAR,這可以解釋你的問題。

+0

我有完全相同的經歷。這個jar已經被maven解決了,'org.sqlite.JDBC'類是那個jar的一部分,但是它仍然失敗並帶着'ClassNotFoundException'。只有在清除我的本地'.m2'緩存(並重新下載jar)後,我的應用程序才運行。 – Maarten

+0

爲我學到的教訓:不要以爲所有下載的罐子都是正確的。我知道,幾乎沒有人這樣做,但考慮自動檢查校驗和。顯然,定義啓用此檢查的回購時有一個屬性。請參閱https://maven.apache.org/settings.html#Repositories – Maarten

0

我也遇到了這個問題。在我的項目中,我想將所有東西都打包成一個JAR文件來創建一個獨立的應用程序。

拋出ClassNotFoundException,因爲我忘了將庫添加到MANIFEST.MF文件的類路徑中。將「Class-Path:lib/sqlite-jdbc-3.7.15-M1.jar」行添加到我的MANIFEST.MF文件中解決了我的問題。