【问题标题】:java.lang.NoClassDefFoundError: com/mongodb/XXXXXX Can't fix it! (Using: MongoDB Java Driver, Spigot)java.lang.NoClassDefFoundError: com/mongodb/XXXXXX 无法修复! (使用:MongoDB Java 驱动程序,Spigot)
【发布时间】:2016-06-16 02:53:16
【问题描述】:

我正在用 Java 为 Spigot/Bukkit (Minecraft) 编写一个插件,但我不知道如何解决这个问题。虽然我做过很多其他语言的编程,但这是我第一次尝试用java编程。我做了很多谷歌搜索,看了几十页,但一切都只是说要做我已经尝试过的事情。

我正在使用 eclipse 并将我的项目转换为 maven 项目,并尝试安装 mongo java 驱动程序的各种变体。我试过了:
- 添加依赖/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 类。我没有正确使用驱动程序,我错过了什么吗?怎么回事?

【问题讨论】:

    标签: java mongodb maven plugins bukkit


    【解决方案1】:

    所以我最终解决了我自己的问题。结果 spigot 在执行时除了 spigot 插件之外不识别任何 jar 文件。阴影本来可以解决我的问题,但我这样做了,这也有效:

    1. 在我的项目目录中创建了一个名为 MANIFEST.MF 的文件。
    2. 在文件中添加了以下内容:

      清单版本:1.0
      类路径:libs/mongo-java-driver-3.2.2.jar
      创建者:1.7.0_06(甲骨文公司)

    3. 在导出插件的最后一步中选择了“使用工作区中的现有清单”。

    这意味着在运行时 spigot 将在其库中包含 {plugin location}/libs/mongo-java-driver-3.2.2.jar。

    我在这里找到了我的解决方案: https://www.spigotmc.org/threads/solved-mongodb-help.35922/

    【讨论】:

      猜你喜欢
      • 2017-06-26
      • 2018-11-10
      • 2016-03-13
      • 1970-01-01
      • 2016-07-13
      • 2016-12-07
      • 1970-01-01
      • 2017-03-10
      相关资源
      最近更新 更多