在与AWS开发工具包相关性执行JAR时发生NoClassDefFoundError

时间:2019-04-11 00:02:28

标签: java amazon-web-services maven aws-sdk

我有一个简单的Java程序,该程序将字符串发送到AWS SNS。当我通过调试器运行该应用程序时,该消息已正确发送,因此我认为我的AWS引用等都井井有条。

如果我使用Maven生成JAR来构建应用程序,则构建成功完成,但在尝试执行JAR时出现java.lang.NoClassDefFoundError:com / amazonaws / services / sns / AmazonSNSClientBuilder错误。

参考Java 1.8和Maven 3.6.0,以下通过mvn -v输出

  

Apache Maven 3.6.0(97c98ec64a1fdfee7767ce5ffb20918da4f719f3;   2018-10-25T05:41:47 + 11:00)Maven主页:   /Users/skilic/dev/apache-maven-3.6.0 Java版本:1.8.0_202,供应商:   Oracle Corporation,运行时:   /图书馆/Java/JavaVirtualMachines/jdk1.8.0_202.jdk/Contents/Home/jre   默认语言环境:en_AU,平台编码:UTF-8操作系统名称:“ mac os x”,   版本:“ 10.14.4”,拱门:“ x86_64”,家族:“ mac”

这是pom.xml中的依赖项声明

        <dependency>
            <groupId>com.amazonaws</groupId>
            <artifactId>aws-java-sdk-bom</artifactId>
            <version>1.11.327</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>  

        <dependency>
            <groupId>com.amazonaws</groupId>
            <artifactId>aws-java-sdk-sns</artifactId>
            <version>1.11.534</version>
        </dependency>

当我执行java -jar target / uber-jar.jar时,我得到:

  

Administrators-MacBook-Pro:SNS skilic $ java -jar   target / uber-jar.jar世界您好!线程“主”中的异常   java.lang.NoClassDefFoundError:   com / amazonaws / services / sns / AmazonSNSClientBuilder           在mvnGroup.App.main(App.java:20)处,原因:java.lang.ClassNotFoundException:   com.amazonaws.services.sns.AmazonSNSClientBuilder           在java.net.URLClassLoader.findClass(URLClassLoader.java:382)           在java.lang.ClassLoader.loadClass(ClassLoader.java:424)           在sun.misc.Launcher $ AppClassLoader.loadClass(Launcher.java:349)           在java.lang.ClassLoader.loadClass(ClassLoader.java:357)           ...还有1个

0 个答案:

没有答案