簡體   English   中英

MongoDB Java錯誤java.lang.NoClassDefFoundError:com / mongodb / MongoClient

[英]MongoDB java error java.lang.NoClassDefFoundError: com/mongodb/MongoClient

我正在嘗試在mongodb和java之間建立連接,但出現錯誤:

java.lang.NoClassDefFoundError: com/mongodb/MongoClient

我知道這個問題之前曾被問過多次,但我嘗試過的那些都沒有

1添加到類路徑中(另外,在這篇文章中,他們談論的是服務器類路徑。我不知道那是什么,如果這是我必須在正在運行的服務器上執行的操作,那么這不是一個選擇)

2我添加了所有需要的jar文件(bson.jar,mongodb-driver-core-jar和mongodb-java.jar)所有版本3.6.3

我已經在Maven項目和Java項目中嘗試了這兩種方法。

導出后打開jar文件時,在其.classpath文件中列出了mongo的jar文件。 我該如何解決我的問題?

PS:我注意到jar文件不包括依賴項jar文件。 jar文件在不存在文件的另一個系統上如何工作? 另外,不確定是否重要,但這是Minecraft服務器的插件

編輯:這是pom.xml依賴項:

<dependencies>
    <dependency>
        <groupId>org.mongodb</groupId>
        <artifactId>mongodb-driver</artifactId>
        <version>3.6.3</version>
    </dependency>
</dependencies>

這應該已經包括bson和core jars,但是不起作用。 我手動添加了它們,以防萬一。 (使用構建路徑->配置構建路徑->添加外部jar)。 我以相同的方式添加了其他jar文件,這些文件也可以正常工作,所以我不知道為什么mongo不會

您應該使用.classpath文件中的eclipse。

您很可能混合了Java項目的Maven和非Maven設置。

如果您不使用Maven(在Eclipse中沒有pom.xml /禁用Maven性質),那么您手動添加到類路徑中的依賴項很有可能會起作用。

如果您想創建一個maven項目,只需像您定義的那樣定義mongodb-driver就足夠了,傳遞性依賴項也將被使用,maven將對其進行管理。

我認為在后一種情況下,您沒有在類路徑中添加任何jar /依賴項,您必須使用pom.xml定義您使用的jar /依賴項。

您必須檢查是否已在MEclipse中啟用了Maven性質:在項目上應該有一個“ M”以指示該項目是一個Maven項目。 如果該符號不存在,請使用項目的上下文菜單“配置”->“轉換為Maven項目”對其進行轉換。 您應該在Eclipse中打開“問題”視圖,並檢查與項目相關的任何問題。 它會告訴您您做錯了什么。

為了回答這個問題,如何使項目可移植:如果您想以最安全的方式行走,最好的方法是使用maven程序集插件構建一個胖子-在這種情況下,maven會將所有內容打包到一個巨大的容器中。 jar文件。

暫無
暫無

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

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