【问题标题】:MongoDB Java Simple Example failsMongoDB Java 简单示例失败
【发布时间】:2018-05-11 00:29:59
【问题描述】:

Mongo DB 服务器正在本地机器上运行。我可以毫无问题地打开 mongo shell 并查询数据库。

java 文件编译没有任何错误。但是在执行时出现错误。

Exception in thread "main" java.lang.NoClassDefFoundError: com/mongodb/MongoClient
        at mongoTest.main(mongoTest.java:26)
Caused by: java.lang.ClassNotFoundException: com.mongodb.MongoClient
        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

我编写的示例 Java 代码如下所示。当我在命令提示符下执行文件时

import com.mongodb.MongoClient;
import com.mongodb.MongoClientURI;
import com.mongodb.ServerAddress;

import com.mongodb.client.MongoDatabase;
import com.mongodb.client.MongoCollection;

import org.bson.Document;
import java.util.Arrays;
import com.mongodb.Block;

import com.mongodb.client.MongoCursor;
import static com.mongodb.client.model.Filters.*;
import com.mongodb.client.result.DeleteResult;
import static com.mongodb.client.model.Updates.*;
import com.mongodb.client.result.UpdateResult;
import java.util.ArrayList;
import java.util.List;

public class mongoTest {

    public static void main(String[] args) {

        MongoClient c = new MongoClient("localhost", 27017);
        MongoDatabase database = c.getDatabase("video");
        MongoCollection collection = database.getCollection("movieDetails");

        System.out.println(collection.count());

    }
}

【问题讨论】:

  • 看起来你的类路径有问题。你是如何执行程序的?通过 IDE 还是通过命令行?
  • 在命令行编译java文件。编译期间没有错误。尝试使用命令 java mongoTest 执行相同的操作
  • 而且,当你编译你的类时,你是否指定了一个指向 MongoDB JAR 的类路径选项?
  • 是...仅供参考 MongoDB 服务器版本为 3.6.2,Java 8 更新 171 命令行中的编译语句为 - javac -cp .;C:\Java\jdk1.8.0_171\jre\lib \mongo\bson-3.6.2.jar;C:\Java\jdk1.8.0_171\jre\lib\mongo\mongodb-driver-3.6.2.jar;C:\Java\jdk1.8.0_171\jre\lib \mongo\mongodb-driver-core-3.6.2.jar;C:\Java\jdk1.8.0_171\jre\lib\mongo\mongo-java-driver-3.6.2.jar mongoTest.java 编译时没有错误

标签: java mongodb mongodb-query


【解决方案1】:

您只需要使用以下内容运行该类:

java -cp <path-to-your-mongodb-jars> mongoTest

将类名大写也是标准的 Java 实践,因此MongoTest 而不是mongoTest

【讨论】:

  • 谢谢你..这工作......还有关于java实践..我会记住的。刚开始用 java 和 mongo 编程
  • 如果您还没有接触过它,请查看university.mongodb.com/courses/M101J/about 为 Java 开发人员提供的免费在线 MongoDB 课程。这很值得。
  • 这是我看到的第一件事:)。当本月 29 日下一次跑步开始时,我肯定会参加那门课程。谢谢
猜你喜欢
  • 1970-01-01
  • 2019-03-07
  • 1970-01-01
  • 2017-08-22
  • 2016-10-08
  • 2014-11-20
  • 1970-01-01
  • 2017-10-17
  • 1970-01-01
相关资源
最近更新 更多