[英]ERROR 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.