为什么 Java 寻找 java.lang.NoClassDefFoundError: com/mongodb/client/MongoClients?

问题描述

我使用了搜索功能并尝试使用提出的解决方解决这个问题,但没有结果..我正在构建一个 minecraft 插件,为了继续前进,我需要使用 MongoDB。我已经使用 Maven 实现了依赖项并实现了“Maven shade plugin”以在运行时包含库但没有结果。我现在完全被困住了,因为我觉得我尝试了一切。 Eclipse 识别出它是一个 Maven 项目,因为存在蓝色“m”。

在运行时 Java 找不到它需要的类。

控制台日志:

java.lang.NoClassDefFoundError: com/mongodb/client/MongoClients
    at rico.polkadot.Main.onEnable(Main.java:182) ~[?:?]
    at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:263) ~[spigot.jar:2991-Spigot-018b9a0-f3f3094]
    at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:351) ~[spigot.jar:2991-Spigot-018b9a0-f3f3094]

我尝试过的:

  • 使用 Maven 添加依赖项
  • 将 JAR 添加到清单
  • 将 JAR 添加到 Eclipse 中的构建路径

我的 POM.xml 文件

POM.xml

在这里遗漏了什么?

解决方法

自己修好了。

解决方案:

清单版本:1.0 类路径:libs/mongo-java-driver-3.7.1.jar libs/bson-3.7.1.jar libs/mongodb-driver-sync-3.7.1.jar 创建者:1.7.0_06 (Oracle Corporation)

需要在清单文件中包含所有需要的驱动程序/依赖项。