我正在尝试编写简单的java代码,该代码在控制台上显示MongoDB集合。我在我的类路径中添加了mongodb-driver-3.0.0.jar。
但是当我尝试执行代码时,它会在数据库连接行中给出以下错误:
线程“main”中的异常java.lang.NoClassDefFoundError: com / mongodb / connection / BufferProvider at com.chintan.app.MongoDbJdbc.main(MongoDbJdbc.java:12)引起: 抛出java.lang.ClassNotFoundException: com.mongodb.connection.BufferProvider at java.net.URLClassLoader $ 1.run(未知来源)at java.net.URLClassLoader $ 1.run(未知来源)at java.security.AccessController.doPrivileged(Native Method)at java.net.URLClassLoader.findClass(未知来源)at java.lang.ClassLoader.loadClass(未知来源)at sun.misc.Launcher $ AppClassLoader.loadClass(未知来源)at java.lang.ClassLoader.loadClass(未知来源)......另外1个
以下是我的代码段:
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或者存在一些版本问题?
答案 0 :(得分:32)
在mongo驱动程序页面上:http://mongodb.github.io/mongo-java-driver/3.0/driver/getting-started/installation-guide/#mongodb-driver
您将看到以下文字:
注意:mongodb-driver需要以下依赖项:bson和mongodb-driver-core
所以你需要以下所有的罐子来完成这项工作:
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/
答案 1 :(得分:3)
以下java驱动程序包含BufferProvider类:
http://mvnrepository.com/artifact/org.mongodb/mongo-java-driver/3.0.0
答案 2 :(得分:0)
此类位于mongodb-driver-core-3.0.0
jar文件中,mongodb-driver-3.0.0.jar
需要该文件。您可以在与此jar相关联的POM file中查看java驱动程序依赖项
我认为你必须使用依赖管理器自动将MongoDB(和其他组件)传递依赖项添加到你的项目中(maven,gradle,...)。
答案 3 :(得分:0)
如果您没有maven项目,只需在项目中包含mongo-java-driver-3.6.1.jar(此jar仅用于Java),无需包含其他jar。
答案 4 :(得分:0)
在类路径中包含mongo-java-driver-3.11.0.jar文件,而不在模块路径中。