I am trying to run an application that reads and writes to the amazon dynamo DB. I downloaded the Eclipse toolkit and AWS SDK and if I run the application from my local PC it works perfectly. Next, I exported it to a jar file and uploaded it to my EC2 instance. However, when I run it there I get an error.
/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.
I assume it has to do with the classpath, but in /home/ubuntu/.bashrc I have set it as such:
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 contains all the .jar files that are in the AWS SDK:
- aspectjrt.jar
- aspectjweaver.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
- mail-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
What am I missing?? I have been looking at this for a day and a half. Thank you in advance!!
The classpath entry of “/directory/*” may be messing things up. Classpaths are separated with colons, but asterisk expansion gives spaces. Try this little shell script to start it.
A couple of notes:
Hope this helps!