簡體   English   中英

java.lang.NoClassDefFoundError:com / mongodb / XXXXXX無法修復! (使用:MongoDB Java驅動程序,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驅動程序的各種變化。 我試過了:
-添加依賴性
-使用project-> properties-> Java Build Path-> Add External Jar將其添加到buildpath
-我同時完成了上述兩項操作
-我嘗試過將mongodb-driver,mongodb-driver-core和bson一起使用,並與mongodb-java-driver(應單獨使用)一起使用。
-我嘗試過僅使用mongodb-java-driver
-我嘗試使用許多不同版本的驅動程序。

我做什么都沒關系,當我將插件導出到jar並嘗試在spigot服務器上運行它時,出現以下錯誤:

java.lang.NoClassDefFoundError: com/mongodb/MongoClientURI

我的代碼中可以使用任何mongo類替換MongoClientURI的地方。 我是否沒有正確使用驅動程序,是否缺少某些東西? 這是怎么回事?

所以我最終解決了自己的問題。 事實證明,在執行時,除了spigot插件,spigot不能識別任何jar文件。 陰影可以解決我的問題,但是我做到了,這也可以:

  1. 在我的項目目錄中創建了一個名為MANIFEST.MF的文件。
  2. 在文件中添加了以下內容:

    清單版本:1.0
    類路徑:libs / mongo-java-driver-3.2.2.jar
    創建時間:1.7.0_06(Oracle公司)

  3. 在導出插件的最后一步中,選擇了“使用工作空間中的現有清單”。

這意味着在運行時,子程序將在其庫中包含{plugin location} /libs/mongo-java-driver-3.2.2.jar。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM