如何解决ClassNotFoundException: com.mongodb.connection.BufferProvider?

18

我正在尝试编写简单的Java代码,以在控制台上显示MongoDB集合。我已将mongodb-driver-3.0.0.jar添加到我的类路径中。

但当我尝试执行代码时,在数据库连接行会给我以下错误:

Exception in thread "main" java.lang.NoClassDefFoundError: com/mongodb/connection/BufferProvider at com.chintan.app.MongoDbJdbc.main(MongoDbJdbc.java:12) Caused by: java.lang.ClassNotFoundException: com.mongodb.connection.BufferProvider at java.net.URLClassLoader$1.run(Unknown Source) 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) ... 1 more

以下是我的代码片段:

public static void main(String[] args) 
    {
        MongoClient mongoClient = new MongoClient("localhost", 27017); //Exception

        @SuppressWarnings("deprecation")
        DB db = mongoClient.getDB("mydb");
        System.out.println("Database connection successfull.");
        ...
        ...
    }

这里的问题是什么?我需要在类路径中添加另一个jar包还是有某个版本的问题?


你能展示一下你的导入吗? - blipman17
5个回答

38

在mongo driver页面上:http://mongodb.github.io/mongo-java-driver/3.0/driver/getting-started/installation-guide/#mongodb-driver

您会看到以下文本:

注意:mongodb-driver需要以下依赖项:bson和mongodb-driver-core

所以你需要以下所有jar包才能让它正常工作:

mongodb-driver-3.0.1.jar、mongodb-driver-core-3.0.1.jar、bson-3.0.1.jar

可以从以下位置下载:

https://oss.sonatype.org/content/repositories/releases/org/mongodb/mongodb-driver/3.0.1/

https://oss.sonatype.org/content/repositories/releases/org/mongodb/mongodb-driver-core/3.0.1/

https://oss.sonatype.org/content/repositories/releases/org/mongodb/bson/3.0.1/


4
给后来的读者注意:请注意选择最新版本的JAR文件。只需导航到父目录并选择最新的JAR文件即可。 - MUmla
另外,对于后来的读者,这就是正确的答案,我只是不知道为什么它没有被标记为正确答案。 - timon_the_destroyer
这节省了我一些时间。谢谢。 - Pavan Jadda

3

0
将mongo-java-driver-3.11.0.jar文件包含在类路径中,而不是模块路径中。

0

这个类在 mongodb-driver-core-3.0.0 jar 文件中,该文件是由 mongodb-driver-3.0.0.jar 所需的。您可以在与此 jar 相关联的 POM 文件 中查看 Java 驱动程序的依赖项。
我认为您需要使用依赖管理器自动将 MongoDB(和其他组件)的传递依赖项添加到您的项目中(如 Maven、Gradle 等)。


0
如果您没有Maven项目,只需在您的项目中包含mongo-java-driver-3.6.1.jar(此jar仅适用于Java),无需包含其他jar。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接