我正在运行用于aws的GlacierAPI,只是一个非常基本的版本—尝试列出我的保险库。
我在学校学过这个例子http://docs.aws.amazon.com/amazonglacier/latest/dev/creating-vaults-sdk-java.html#creating-Vault sdk java示例。
我在linux上从命令行运行。它编译得很好:
javac -cp sdk/lib/aws-java-sdk-1.7.3.jar -d bin src/AmazonGlacierVaultInfo.java
但跑步时,我会:
java -cp "bin: sdk/lib*" AmazonGlacierVaultInfo
Exception in thread "main" java.lang.NoClassDefFoundError: com/amazonaws/auth/AWSCredentials
似乎在sdkjar中找不到sdk类。
我认为我的类路径是正确的:
./:/home/name/sites/git/glacier/bin/:/home/name/sites/git/glacier/sdk/:/home/name/sites/git/glacier/src/
我从/home/name/sites/git/glacier运行和编译,其中包含bin、src和sdk目录,详见http://docs.aws.amazon.com/amazonglacier/latest/dev/using-aws-sdk-for-java.html#setting-启动并测试sdkjava命令行
任何帮助都将不胜感激。
3条答案
按热度按时间syqv5f0l1#
我有同样的错误,但我重试如下
如果同时使用maven,请添加插件:
并运行:
它将所有需要的依赖项打包到一个jar中,然后错误将消失。
w6lpcovy2#
我也有同样的问题,这对我很有效。
将以下内容添加到pom.xml
然后转到目标文件夹查看jar文件的名称。它看起来像这样
aws-java-sdk-1.7.3-SNAPSHOT-jar-with-dependencies.jar
然后从目标文件夹中出来并运行在目标文件夹中找到的jar文件的名称如下所示
aws-java-sdk-1.7.3-SNAPSHOT-jar-with-dependencies.jar
eh57zj3b3#
一些问题
添加一个正斜杠来解析
lib
目录从类路径中删除空间
周围的引号是不必要的
命令: