测试xerial SQLite JDBC时出现NoClassDefFoundError错误

时间:2011-12-08 21:24:22

标签: java jdbc sqlite noclassdeffounderror

我无法运行SQLite sample而且令人抓狂。我收到一条复杂的多行错误消息,包括:

Exception in thread "main" java.lang.NoClassDefFoundError:  Sample/jar

...

Could not find the main class: Sample.jar.

我怀疑可能涉及到类路径错误,所以这是我的类路径(Win7):

。; C:\ Program Files \ Java \ jdk1.6.0_25 \ lib; C:\ Program Files \ Java \ jre6 \ lib \; E:\ Dropbox \ Personal \ Development \ BlueJ examples; C:\ Program Files \爪哇\ jdk1.6.0_25 \ lib中\源码-JDB-3.7.2.jar

我正在E:... BlueJ示例文件夹中运行命令提示符(FWIW正常"java -jar hello.jar"命令提示符在此文件夹中运行正常)。有人可以帮忙弄清楚我做错了什么吗?

2 个答案:

答案 0 :(得分:1)

您的类路径需要包含对jar文件本身的引用,而不仅仅是它所在的目录。

答案 1 :(得分:0)

抱歉,不得不开始另一个答案,因为这个很长。

很高兴的事情正在奏效,但我想你可能误解了我在之前的回答中想说的话。

类路径是java将为您的类查找的一系列地方。如果classpath元素是一个文件夹,那么其中的所有.class文件都将包含在搜索中。 Jar文件本质上是压缩文件夹,因此您必须在类路径中包含jar文件的名称。您可以将实际的jar文件放在任何您喜欢的目录中,只要它在类路径中引用(使用文件的完整路径)。在您对我的其他答案的评论中,您已将sqlite-jdbc.jar添加到类路径文件中,但由于您没有使用完整文件路径引用它,因此java将仅在您运行时查看当前目录。

希望这是有道理的 - 并感谢接受:)