2012-06-13 15 views
10

java用のAWS SDKに付属のDynamoDBサンプルを実行しようとしています。私はそれをEclipseを使ってやっており、aws-java-sdk-1.3.2.jarファイルをプロジェクトのビルドパスに追加しました。コンパイルはうまくいくが、NoClassDefFoundErrorというランタイム例外が発生する。 私はそれはクラスがコンパイル時にそこにあったが実行時に見つけられなかったことを意味する。 jarファイルをenv変数に追加しようとしましたが、これは役に立ちませんでした。 他のプロジェクトで他の外部jarファイルを使用しても問題はありません。 WindowsとLinuxの両方で同じ問題が発生しました。NoClassDefFoundError Java用AWS SDKを使用してプログラムを実行しています

助けてください?

ありがとう、ベン。

スタックトレース:あなたのAWSのJARを使用実装するいくつかの余分なJARファイルが必要ですが、(あなたのケースのログのように)非AWSのアイテムのように

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) 
+0

スタックトレースを送信してください。 –

+1

Apacheの共有ライブラリjarファイルが追加されていますか?それはここで見つけることができます:http://commons.apache.org/logging/download_logging.cgi –

+1

はい、またコーデックとHTTPクライアント。ビルドパス –

答えて

1

に見えます。

"lib"ディレクトリを含む配布可能ファイルをダウンロードした場合、AWSを含む必要なすべてのJARと、おそらく "lib"ディレクトリ内のすべてのJARの代わりに、AWS JARを使用するようにEclipseを構成することになります。あなたは "サードパーティ" という名前の別のフォルダを見つけますAWS-javaの-SDK-1.3.2フォルダ内

+0

libにaws-java-sdk-1.3.2-sources.jarとaws-java-sdk-1.3.2-javadoc.jarがあります。彼らは関係ないですか?私はまた、第三者と呼ばれるディレクトリを持っていますが、これにはcommons-logging-1.1.1.jarが含まれており、ビルドパスにもあります... –

+0

ソースとjavadoc jarが必要でないものたす。サードパーティのcommons-logging-1.1.1.jarファイルには、探しているクラスがありません。 AWSライブラリを "インクルード"に設定し、awsライブラリにデバッグしたい場合は "ソース" JARファイルをフックアップすることができます。 –

+0

commons-logging-1.1.1.jarはすでにビルドパスの内部にあります。私はまた、jarファイル内にorg/apache/commons/logging/LogFactory.classも手動で見つけました。 JVMがそれを見つけられない何らかの理由を考えることができますか? –

12

。 Amazon SDKによって使用されるサードパーティのファイルはすべて、Apache Common Loggingを含むそのフォルダ内にあります。必要なファイルをAWS SDKのjarファイルとともにクラスパスに追加する必要があります。

+0

その魔法の「サードパーティ」へのWebリンクを提供できますか? jarの依存関係には、そのようなフォルダはありません。 – Cherry

+1

Omg ...私は長い間、この正確な問題を巡ってきました...第三者図書館...息子の... – WernerCD

関連する問題