“Error:(3,19) java: package com.mongodb.client is not visible” - 在 IntelliJ 中将 MongoDB 与 Maven JavaFX 项目连接时出错

"Error:(3,19) java: package com.mongodb.client is not visible" - Error connecting MongoDB with a Maven JavaFX project in IntelliJ

提问人:TorusWithSprinkles 提问时间:10/16/2020 更新时间:10/18/2020 访问量:545

问:

我正在使用 Maven 在 IntelliJ 中处理一个 JavaFX 项目,现在我正在尝试让它连接到 MongoDB。我正在关注MongoDB的官方视频,做同样的事情,这就是我到目前为止添加的内容。对我的 pom 文件的依赖:

    <dependency>
        <groupId>org.mongodb</groupId>
        <artifactId>mongodb-driver-sync</artifactId>
        <version>3.12.7</version>
    </dependency>

和连接我的代码:public static void main

    public static void main(String[] args) {

        String connectionString = "mongodb+srv://admin:[email protected]/<dbname>?retryWrites=true&w=majority";

        try (MongoClient mongoClient = MongoClients.create(connectionString)) {
            MongoIterable<String> strings = mongoClient.listDatabaseNames();
            MongoCursor<String> cursor = strings.cursor();

            while (cursor.hasNext()) {
                System.out.println(cursor.next());
        }
    }
    launch(); // This launches the JavaFX side of the app
}

这是他们在视频中添加的唯一代码,在此阶段,它应该将所有数据库名称正确打印到控制台。但是,我收到以下 4 个错误:

Error:(3,19) java: package com.mongodb.client is not visible
Error:(4,19) java: package com.mongodb.client is not visible
Error:(5,19) java: package com.mongodb.client is not visible
Error:(6,19) java: package com.mongodb.client is not visible

我错过了什么吗?我找不到有关此特定错误的太多信息,我按照视频说明进行了操作。我真的很感激。

java mongodb maven intellij-idea javafx

评论

0赞 Andrey 10/16/2020
这回答了你的问题吗?包不可见错误
0赞 Andrey 10/16/2020
您需要在使用它的模块中导出此包。
0赞 TorusWithSprinkles 10/16/2020
@Andrey 对不起,我不太熟悉导出的工作原理。所以这进了module-info.java文件?它只是“exports com.mongodb.client”吗?我确实尝试添加它,但什么也没发生,但我可能做错了什么。

答:

1赞 TorusWithSprinkles 10/18/2020 #1

因此,根据 MongoDB 的这个文档,我发现我必须添加一个模块声明,因为我使用的是 Java 版本 9+。我将其添加到我的module-info.java中,并成功清除了这些错误:

requires org.mongodb.driver.sync.client;

这确实回答了我最初的问题,但是我应该注意,当我尝试运行时,我遇到了一个新错误:

Error:(45, 48) java: cannot access com.mongodb.ConnectionString

如果阅读本文的任何人碰巧在做同样的事情并遇到相同的错误,我将不断更新这篇文章,并提供解决方案或可能的新解决方案(因为我相信这个错误可能与第一个错误有关)。

评论

0赞 clockw0rk 5/6/2022
它仍然告诉“找不到模块”