Ошибка Java MongoDB java.lang.NoClassDefFoundError: com / mongodb / MongoClient - PullRequest
0 голосов
/ 31 мая 2018

Я пытаюсь установить соединение между mongodb и java, но получаю сообщение об ошибке:

java.lang.NoClassDefFoundError: com/mongodb/MongoClient

Мне известно, что этот вопрос задавался несколько раз, но ни один из тех, которые я пробовал, не работает

1 добавление в classpath (Также в этом посте речь идет о пути к классам сервера. Я не знаю, что это такое, и если это то, что я должен сделать на серверея бегу, это не вариант)

2 Я добавил все необходимые файлы jar (bson.jar, mongodb-driver-core-jar и mongodb-java.jar) Вся версия 3.6.3

Я испробовал оба метода в проекте maven и проекте java.

При открытии файла jar после его экспорта в его файле .classpath файлы jar дляМонго перечислены.Как я могу исправить мою проблему?

PS: я заметил, что файл jar не содержит файлы jar зависимостей.Как файл JAR будет работать в другой системе, где нет файлов?Кроме того, не уверен, если это имеет значение, но это плагин для сервера Minecraft, но не работает.Я добавил их вручную на всякий случай.(Build Path -> Configure Build Path -> Add external jar) с помощью Eclipse.Я добавил другие файлы jar таким же образом, и они работают, поэтому я не знаю, почему mongo не будет

1 Ответ

0 голосов
/ 31 мая 2018

Вы используете eclipse, я полагаю, из файла .classpath.

Вы, вероятно, смешали maven и non-maven настройки java-проекта.

Если вы не используете maven(не используйте pom.xml / Disable Maven nature в eclipse) ваши зависимости, которые вы добавили вручную в classpath, будут работать очень вероятно.

Если вы хотите создать проект maven, достаточноопределите драйвер mongodb, как вы это сделали, транзитивные зависимости также будут использоваться, maven будет управлять ими.

Я думаю, что в последнем случае вы напрасно добавляли jar / зависимости в classpath, вы должны использовать pom.xml, чтобы определить используемые jar / зависимости.

Вы должны проверить, чтоприрода maven включена или не включена в затмение: в проекте должна быть буква «М», указывающая, что проект является проектом maven.Если знак отсутствует, пожалуйста, преобразуйте его, используя контекстное меню проекта «Конфигурировать» -> «Преобразовать в Maven Project».Вам следует открыть окно «Проблемы» в затмении и проверить его на наличие проблем, связанных с вашим проектом.Он расскажет вам, что вы сделали не так.

Чтобы ответить на вопрос, как сделать проект переносимым: если вы хотите идти по наиболее безопасному пути, лучше всего сделать толстую банку, используяПлагин сборки maven - в этом случае maven упаковывает все в один огромный jar-файл.

...