3

AmazonDynamoDBの読み取りと書き込みを行うアプリケーションを実行しようとしています。EclipseツールキットとAWSSDKをダウンロードしましたが、ローカルPCからアプリケーションを実行すると、完全に機能します。次に、それをjarファイルにエクスポートし、EC2インスタンスにアップロードしました。ただし、そこで実行するとエラーが発生します。

  /home/apps/java/database/bin$ java -jar myJar.jar
Exception in thread "main" java.lang.NoClassDefFoundError: com/amazonaws/auth/AW                                                                  SCredentials
Caused by: java.lang.ClassNotFoundException: com.amazonaws.auth.AWSCredentials
        at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
Could not find the main class: DynamoDB. Program will exit.

クラスパスに関係していると思いますが、/ home / ubuntu/.bashrcで次のように設定しました。

CLASSPATH="./:/home/apps/java/database/bin/*:/home/apps/java/database/bin/aws-java-sdk-1.3.12.jar"
export CLASSPATH

/ home / apps / java / database / binには、AWSSDKにあるすべての.jarファイルが含まれています。

  • アスペクトjrt.jar
  • アスペクトjweaver.jar
  • aws-java-sdk-1.3.12.jar
  • aws-java-sdk-1.3.12-javadoc.jar
  • aws-java-sdk-1.3.12-sources.jar
  • aws-java-sdk-flow-build-tools-1.3.12.jar
  • commons-codec-1.3.jar
  • commons-logging-1.1.1.jar
  • freemarker-2.3.18.jar
  • httpclient-4.1.1.jar
  • httpcore-4.1.jar
  • jackson-core-asl-1.8.7.jar
  • jackson-mapper-asl-1.8.7.jar
  • メール-1.4.3.jar
  • myJar.jar
  • spring-beans-3.0.7.jar
  • spring-context-3.0.7.jar
  • spring-core-3.0.7.jar
  • stax-1.2.0.jar
  • stax-api-1.0.1.jar

何が足りないの?私はこれを1日半見てきました。前もって感謝します!!

4

2 に答える 2

0

「/directory/*」のクラスパスエントリが混乱している可能性があります。クラスパスはコロンで区切られますが、アスタリスクの展開はスペースを示します。この小さなシェルスクリプトを試して開始してください。

#!/bin/sh
JAVA_OPTS="-Xms256M -Xmx4G"
CP=`find /home/apps/java/database/bin/*jar -exec echo -n "{}:" \;`
java -cp ${CP%?} -jar yourjar.jar

いくつかのメモ:

  • JAVA_OPTSは、デフォルトよりも多くのメモリが必要になる可能性があることを思い出させるためにのみ存在します。
  • 「find」行の最後にコロンが残っているため、最後の行のCPのクレイジーな構文では、最後の文字が削除されます。
  • 実行可能なjarでない場合は、jarを含めて、正しいクラスを起動することをお勧めします。

お役に立てれば!

于 2012-07-10T16:05:51.340 に答える
0

このライブラリのリストは、私にとっては機能しますaws-java-sdk-1.11.285-javadoc.jar aws-java-sdk-1.11.285-sources.jaraws-java-sdk-1.11.285.jaraws-java-sdk。 jar

aspectjrt-1.8.2.jar
aspectjweaver.jar
aws-swf-build-tools-1.1.jar
commons-codec-1.9.jar
commons-logging-1.1.3.jar
freemarker-2.3.9.jar
httpclient-4.5.2.jar
httpcore-4.4.4.jar
ion-java-1.0.2.jar
jackson-annotations-2.6.0.jarÅ
jackson-core-2.6.7.jar
jackson-databind-2.6.7.1.jar
jackson-dataformat-cbor-2.6.7.jar
javax.mail-api-1.4.6.jar
jmespath-java-1.11.285.jar
joda-time-2.8.1.jar
netty-buffer-4.1.17.Final.jar
netty-codec-4.1.17.Final.jar
netty-codec-http-4.1.17.Final.jar
netty-common-4.1.17.Final.jar
netty-handler-4.1.17.Final.jar
netty-resolver-4.1.17.Final.jar
netty-transport-4.1.17.Final.jar
spring-beans-3.0.7.RELEASE.jar
spring-context-3.0.7.RELEASE.jar
spring-core-3.0.7.RELEASE.jar
spring-test-3.0.7.RELEASE.jar
于 2019-01-06T06:01:11.040 に答える