AmazonServiceException类未找到
我使用AWS SDK将文件上传到S3桶,设置Java类路径时,“AWS-Java的SDK-1.10.49.jar”,程序工作正常,但是当替换jar文件到更高版本“aws-java-sdk-1.11.35.jar”,我得到异常“未找到AmazonServiceException类如下”AmazonServiceException类未找到
线程“main”中的异常java.lang.NoClassDefFoundError:com/amazonaws/AmazonServiceException at java .lang.Class.getDeclaredMethods0(Native Method) at java.lang.Class.privateGetDeclaredMethods(Class.java:2701) at java.lang.Class.privateGetMethodRecursive(Class.java:3048) at java.lang.Class。 getMethod0(Class.java:3018) 在java.lang.Class.getMethod(Class.java:1784) 在sun.launcher.LauncherHelper.validateMainClass(LauncherHelper.java:544) 在sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:526) 引起由:抛出java.lang.ClassNotFoundException:在sun.misc com.amazonaws.AmazonServiceException 在java.net.URLClassLoader.findClass(URLClassLoader.java:381) 在java.lang.ClassLoader.loadClass(ClassLoader.java:424) .Launcher $ AppClassLoader.loadClass(Launcher.java:331) at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
any help?
我们这里有三种可能的问题:
的NoClassDefFoundError的一个简单例子是类属于丢失的JAR文件或JAR未添加到类路径或有时罐子的名字已经被别人改变像我案例我的一个同事已经改变tibco.jar到tibco_v3.jar和程序与java.lang.NoClassDefFoundError失败,我想知道什么是错的。
该类不在Classpath中,没有确切的知道它的方法,但很多时候你只需要看一下打印System.getproperty(“java.classpath”),它将从那里打印类路径您至少可以了解您的实际运行时类路径。
只要尝试使用显式的-classpath选项来运行你认为会工作的类路径,如果它正在工作,那么肯定有人重写java classpath。
在this文章看看
谢谢,我只是创造了另一个项目,并添加了所有Maven依赖和运行程序工作正常,但对于第一个程序还在抱怨ClassNotFound的!!!!我相信我明确指定java CLASSPATH中的aws-java-sdk-1.11.23.jar。 FYI ..程序在Eclipse中运行良好,在Linux中运行时会发生问题 – Telebh
你有类路径的AWS SDK的两个版本? – jbird
没有,一个版本如下:$ JAVA_HOME /斌/ java的-classpath ./commons-httpclient.jar:${LIBDIR}/ojdbc6-11.2.0.3.jar:./commons-logging.jar:./log4j-1.2 .17.jar:./公地编解码器1.8.jar:./ AWS-Java的SDK-1.11.35.jar:./ AWS-Java的SDK-s3-1.11.35.jar:./杰克逊 - 数据绑定-2.5。 3.jar:./杰克逊核心-2.5.3.jar:./杰克逊的注解-2.5.0.jar:./的HttpClient-4.3.3.jar:./的HttpCore-4.3.2.jar:。 /javax.jms-1.1 的.jar:/amazon-sqs-java-messaging-lib-1.0.0.jar:./公地IO-2.4.jar:./ javax.json-1.0.4.jar:。 /json-simple-1.1.1.jar awss3.testUpload – Telebh