未找到 AmazonServiceException 类

Tel*_*ebh 8 amazon-s3 amazon-web-services

当将 java 类路径设置为“aws-java-sdk-1.10.49.jar”时,我正在使用 AWS SDK 将文件上传到 S3 存储桶,该程序运行良好,但是当将 jar 文件替换为更高版本的“aws-java-sdk”时-1.11.35.jar”,出现异常“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) at java.lang.Class.getMethod(Class.java:1784) at sun.launcher.LauncherHelper.validateMainClass(LauncherHelper. java:544) at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:526) 由:java.lang.ClassNotFoundException: com.amazonaws.AmazonServiceException at java.net.URLClassLoader.findClass(URLClassLoader.java:381) at java .lang.ClassLoader.loadClass(ClassLoader.java:424) 在 sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:357)

有什么帮助吗?

nig*_*are 0

这里我们有三个可能的问题:

  1. NoClassDefFoundError 的一个简单示例是类属于丢失的 JAR 文件,或者 JAR 未添加到类路径中,或者有时 jar 的名称已被某人更改,就像我的情况一样,我的一位同事已将 tibco.jar 更改为 tibco_v3.jar 并且程序是因 java.lang.NoClassDefFoundError 失败,我想知道出了什么问题。

  2. 该类不在 Classpath 中,没有确定的方法可以知道它,但很多时候您可以查看打印 System.getproperty("java.classpath") ,它会打印您至少可以从那里获得的类路径您的实际运行时类路径的想法。

  3. 只需尝试使用显式 -classpath 选项和您认为可以工作的类路径运行,如果它有效,那么这肯定是有人正在覆盖 java 类路径的简短迹象。

看看这篇文章