当前位置: 首页 > 知识库问答 >
问题:

为什么Java在寻找Java.lang.NoClassDefFoundError:com/mongodb/client/mongoClient?[副本]

陆才俊
2023-03-14

我已经使用了搜索功能,并试图用提出的解决方案解决这个问题,但没有结果。我正在构建一个Minecraft插件,为了继续前进,我需要使用MongoDB。我已经用Maven实现了依赖关系,并实现了“Maven shade插件”以在运行时包含库,但没有结果。我现在完全卡住了,因为我觉得我什么都试过了。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添加到清单
  • 在Eclipse中将JAR添加到构建路径

我的聚甲.xml文件:

POM.xml

我错过了什么?

共有1个答案

顾梓
2023-03-14

我自己修好了。

解决方案:

manifest-Version:1.0 Class-Path: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公司)

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

 类似资料:
  • 我用libgdx用Java做了一个应用程序。我需要使用屏幕的高度和1080的比例。因此,我创建了一个名为rh的浮点数,它等于gdx.graphics.getheight()/1080 请救命!提前谢了。 p.s:gdx.graphics.getheight()以nr的像素为单位获取屏幕的高度。

  • 当我们不知道任何给定对象的finalize()方法何时可以运行时,我们需要在java中重写finalize()方法的哪里?我们可以在finalize()中关闭什么类型的资源?GC调用finalize()方法的最佳机会是什么?

  • 根据我的理解,类被声明为final,以防止它被扩展/继承。因此,我认为在这方面可能会有安全性,也可能会有一些性能提升。 但这背后是否有一个非常具体的设计决策?比如说:实现某种设计模式?我确实在这里绕了一个类似的线!但答案并不是我想要的

  • 我一直在谷歌搜索它,但谷歌搜索关键字“?”也没那么好。我很想知道它是做什么的,什么时候用。 谢了! 我已经看过几次了,但这里有一个我刚刚看到的例子

  • 我最近在Windows 10机器上下载了截至2020年3月的python(3.8),并检查了我的Pip版本。我使用了pip(版本)和其他几个命令,但它说“pip不能被识别为内部或外部命令、可操作的程序或批处理文件。”我去了Windows中的简单搜索栏,找到了安装在我电脑上的pip。那么我需要使用什么命令来使用pip呢?还是我还遗漏了什么?