NoClassDefFoundError во время запуска программы с использованием AWS SDK для java
Я пытаюсь запустить образец DynamoDB, который поставляется с AWS SDK для java. Я делаю это, используя eclipse, и добавил файл aws-java-sdk-1.3.2.jar
в путь сборки проекта. Компиляция, конечно, идет хорошо, но im получает исключение во время выполнения с именем NoClassDefFoundError
.
Я знаю, это означает, что класс был там при компиляции, но не мог быть найден во время выполнения.
Я попытался добавить файл jar в переменные env - не помогло.
Я также проверил, и нет проблем с использованием других внешних файлов jar в других проектах.
Такая же проблема и для Windows, и для Linux.
Помогите кому-нибудь?
Спасибо, ben.
Трассировка стека:
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
at com.amazonaws.services.dynamodb.AmazonDynamoDBClient.<clinit>(AmazonDynamoDBClient.java:62)
at AmazonDynamoDBSample.init(AmazonDynamoDBSample.java:62)
at AmazonDynamoDBSample.main(AmazonDynamoDBSample.java:67)
Ответы
Ответ 1
В папке aws-java-sdk-1.3.2 вы найдете другую папку с именем " сторонняя". Все сторонние файлы, используемые программой Amazon SDK, находятся внутри этой папки, включая общий журнал регистрации Apache. Вы должны добавить необходимые файлы в свой путь к классам вместе с файлами jar AWS SDK.
Ответ 2
Похоже, что вашему AWS JAR требуется несколько дополнительных JAR для реализации используемых, но не AWS-элементов (например, в вашем журнале).
Если вы загрузили дистрибутив, содержащий каталог "lib", то вы можете настроить Eclipse только для использования AWS JAR вместо всех необходимых JAR, включая AWS и, возможно, все JAR файлы в каталоге "lib".