Образец отсутствующих классов в учебном пособии по AWS SDK для Java

Следуя руководству по началу работы с AWS SDK для Java, чтобы запустить пример AwsConsoleApp:

java -cp .:/Users/marius/Dev/aws-java-sdk-1.3.8/lib/aws-java-sdk-1.3.8.jar AwsConsoleApp

Я получаю следующие проблемы:

===========================================
Welcome to the AWS Java SDK!
===========================================
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
    at com.amazonaws.util.VersionInfoUtils.<clinit>(VersionInfoUtils.java:41)
    at com.amazonaws.ClientConfiguration.<clinit>(ClientConfiguration.java:31)
    at com.amazonaws.services.ec2.AmazonEC2Client.<init>(AmazonEC2Client.java:95)
    at AwsConsoleApp.init(AwsConsoleApp.java:93)
    at AwsConsoleApp.main(AwsConsoleApp.java:105)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
    ... 5 more

Тот же полный SDK, который был загружен в путь к классам во время компиляции, также предоставляется во время выполнения, поэтому я не могу понять, чего не хватает.


person Marius Butuc    schedule 23.04.2012    source источник


Ответы (2)


Среди предварительных требований к SDK у вас есть:

Требуются сторонние пакеты Apache Commons (кодек, HTTP-клиент и ведение журнала), которые включены в сторонний каталог SDK.

поэтому я просто добавил их в свой .bashrc:

#   Apache Commons Logging
export CLASSPATH=$CLASSPATH:/Users/marius/Dev/aws-java-sdk-1.3.8/third-party/commons-logging-1.1.1/*
#   Apache Commons HTTP Client
export CLASSPATH=$CLASSPATH:/Users/marius/Dev/aws-java-sdk-1.3.8/third-party/httpcomponents-client-4.1.1/*
#   Apache Commons Codec
export CLASSPATH=$CLASSPATH:/Users/marius/Dev/aws-java-sdk-1.3.8/third-party/commons-codec-1.3/*
person Marius Butuc    schedule 23.04.2012

В Windows добавьте эти пути в свою систему CLASSPATH

C:\aws-java-sdk-1.3.21.1\lib\aws-java-sdk-1.3.21.1.jar;
C:\aws-java-sdk-1.3.21.1\third-party\commons-logging-1.1.1\commons-logging-1.1.1.jar;
C:\aws-java-sdk-1.3.21.1\third-party\commons-codec-1.3\commons-codec-1.3.jar;
C:\aws-java-sdk-1.3.21.1\third-party\httpcomponents-client-4.1.1\httpclient-4.1.1.jar;
C:\aws-java-sdk-1.3.21.1\third-party\httpcomponents-client-4.1.1\httpcore-4.1.jar

затем обязательно начните с нового окна подсказки cmd после их применения.

person dmohr    schedule 28.09.2012