2012-04-23 73 views
7

繼入門AWS SDK的Java教程,運行AwsConsoleApp示例:AWS SDK的Java教程示例中缺少類

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也在運行時給出,所以我無法弄清楚缺少什麼。

回答

7

其中SDK prerequisites,您有:

需要阿帕奇百科全書編解碼器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/* 
2

在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 

那麼一定要開始一個新的命令提示符窗口後,應用這些。