"Error:(3,19) java: package com.mongodb.client is not visible" - Error connecting MongoDB with a Maven JavaFX project in IntelliJ
"Error:(3,19) java: package com.mongodb.client is not visible" - Error connecting MongoDB with a Maven JavaFX project in IntelliJ
我正在使用 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:javaapp@orderscluster.wcn38.mongodb.net/<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
我错过了什么吗?我找不到关于这个特定错误的太多信息,我按照视频说明进行了操作。感谢您的帮助!非常感谢。
因此,根据 this doc from MongoDB,我发现我必须添加模块声明,因为我使用的是 Java 版本 9+。我将其添加到 module-info.java 并成功清除了这些错误:
requires org.mongodb.driver.sync.client;
这确实回答了我最初的问题,但是我应该注意到,当我尝试 运行:
时出现了一个新错误
Error:(45, 48) java: cannot access com.mongodb.ConnectionString
如果有人读到这篇文章碰巧在做同样的事情并得到同样的错误,我会保持这个 post 更新解决方案或者可能是一个新的整体解决方案(我相信这个错误可能与第一个有关。
我正在使用 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:javaapp@orderscluster.wcn38.mongodb.net/<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
我错过了什么吗?我找不到关于这个特定错误的太多信息,我按照视频说明进行了操作。感谢您的帮助!非常感谢。
因此,根据 this doc from MongoDB,我发现我必须添加模块声明,因为我使用的是 Java 版本 9+。我将其添加到 module-info.java 并成功清除了这些错误:
requires org.mongodb.driver.sync.client;
这确实回答了我最初的问题,但是我应该注意到,当我尝试 运行:
时出现了一个新错误Error:(45, 48) java: cannot access com.mongodb.ConnectionString
如果有人读到这篇文章碰巧在做同样的事情并得到同样的错误,我会保持这个 post 更新解决方案或者可能是一个新的整体解决方案(我相信这个错误可能与第一个有关。