2011-07-29 71 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文件中解决了我的问题。