java.lang.NoClassDefFoundError: com/mongodb/XXXXXX Can't fix it! (Using: MongoDB Java Driver, Spigot)
java.lang.NoClassDefFoundError: com/mongodb/XXXXXX Can't fix it! (Using: MongoDB Java Driver, Spigot)
我正在 Java 中为 Spigot/Bukkit (Minecraft) 编写一个插件,我一直想不出如何解决这个问题。虽然我用其他语言做过很多编程,但这是我第一次尝试用 java 编程。我做了很多 google 搜索,查看了几十页,但一切只是说要做的事情我已经尝试过了。
我正在使用 eclipse 并将我的项目与 maven 项目相互转换,尝试安装 mongo java 驱动程序的各种变体。我试过:
- 添加 dependency/s
- 使用 project->properties->Java Build Path->Add External Jar
将其添加到构建路径
- 我结合了以上两项
- 我试过一起使用 mongodb-driver、mongodb-driver-core 和 bson,以及 mongodb-java-driver(应该可以正常工作靠自己。)
- 我试过只使用 mongodb-java-driver
- 我尝试过使用许多不同版本的驱动程序。
无论我做什么,当我将我的插件导出到一个 jar 并尝试 运行 它在我的 spigot 服务器上时,我收到以下错误:
java.lang.NoClassDefFoundError: com/mongodb/MongoClientURI
MongoClientURI 可以替换为我在代码中使用的任何 mongo class。我是不是没有正确使用驱动程序,是不是遗漏了什么?怎么回事?
所以我最终解决了自己的问题。事实证明,spigot 在执行时无法识别除 spigot 插件之外的任何 jar 文件。阴影本来可以解决我的问题,但我这样做了,这也有效:
- 在我的项目目录中创建了一个名为 MANIFEST.MF 的文件。
向文件添加了以下内容:
清单版本:1.0
Class-路径:libs/mongo-java-driver-3.2.2.jar
创建者:1.7.0_06 (Oracle Corporation)
在导出插件的最后一步选择"Use existing manifest from workspace"。
这意味着在运行时 spigot 将在其库中包含 {plugin location}/libs/mongo-java-driver-3.2.2.jar。
我在这里找到了我的解决方案:
https://www.spigotmc.org/threads/solved-mongodb-help.35922/
我正在 Java 中为 Spigot/Bukkit (Minecraft) 编写一个插件,我一直想不出如何解决这个问题。虽然我用其他语言做过很多编程,但这是我第一次尝试用 java 编程。我做了很多 google 搜索,查看了几十页,但一切只是说要做的事情我已经尝试过了。
我正在使用 eclipse 并将我的项目与 maven 项目相互转换,尝试安装 mongo java 驱动程序的各种变体。我试过:
- 添加 dependency/s
- 使用 project->properties->Java Build Path->Add External Jar
将其添加到构建路径
- 我结合了以上两项
- 我试过一起使用 mongodb-driver、mongodb-driver-core 和 bson,以及 mongodb-java-driver(应该可以正常工作靠自己。)
- 我试过只使用 mongodb-java-driver
- 我尝试过使用许多不同版本的驱动程序。
无论我做什么,当我将我的插件导出到一个 jar 并尝试 运行 它在我的 spigot 服务器上时,我收到以下错误:
java.lang.NoClassDefFoundError: com/mongodb/MongoClientURI
MongoClientURI 可以替换为我在代码中使用的任何 mongo class。我是不是没有正确使用驱动程序,是不是遗漏了什么?怎么回事?
所以我最终解决了自己的问题。事实证明,spigot 在执行时无法识别除 spigot 插件之外的任何 jar 文件。阴影本来可以解决我的问题,但我这样做了,这也有效:
- 在我的项目目录中创建了一个名为 MANIFEST.MF 的文件。
向文件添加了以下内容:
清单版本:1.0
Class-路径:libs/mongo-java-driver-3.2.2.jar
创建者:1.7.0_06 (Oracle Corporation)在导出插件的最后一步选择"Use existing manifest from workspace"。
这意味着在运行时 spigot 将在其库中包含 {plugin location}/libs/mongo-java-driver-3.2.2.jar。
我在这里找到了我的解决方案: https://www.spigotmc.org/threads/solved-mongodb-help.35922/