java.lang.ClassNotFoundException / NoClassDefFoundError for com / fasterxml / jackson / databind / ObjectMapper with Maven
尝试运行使用jackon的ObjectMapper类的java程序时出现以下错误:
Exception in thread "main" java.lang.NoClassDefFoundError: com/fasterxml/jackson/databind/ObjectMapper at com.inin.dynamotransfer.DynamoTransfer.importData(DynamoTransfer.java:133) at com.inin.dynamotransfer.DynamoTransfer.main(DynamoTransfer.java:67) Caused by: java.lang.ClassNotFoundException: com.fasterxml.jackson.databind.ObjectMapper at java.net.URLClassLoader$1.run(URLClassLoader.java:366) at java.net.URLClassLoader$1.run(URLClassLoader.java:355) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:354) at java.lang.ClassLoader.loadClass(ClassLoader.java:425) at java.lang.ClassLoader.loadClass(ClassLoader.java:358) ... 2 more
我有我的Maven存储库中的Jackson注释,databind(包含ObjectMapper)和核心JAR,位于〜/ .m2 / repository / com / fasterxml / jackson / core / jackson- [packagename] /2.4.0下。 这是我的pom.xml的依赖项部分:
com.fasterxml.jackson.core jackson-annotations 2.4.0 com.fasterxml.jackson.core jackson-databind 2.4.0 com.fasterxml.jackson.core jackson-core 2.4.0
这是我的CLASSPATH:
:/Users/myusername/Library/Java/Extensions:/Library/Java/Extensions:/Users/myusername/.m2/repository
所以Maven知道所有这些JAR – 在哪里获取em,在哪里放em等等 – 但java本身似乎无法找到我需要的类。 我究竟做错了什么?? 谢谢!
尝试重做maven生命周期目标:
mvn clean install -U
默认的maven插件不会构建带有依赖项的胖jar。
要构建一个与其依赖项捆绑在一起的jar,以便我们可以使用java -jar
执行它,我们可以使用maven-assembly-plugin ,它将jar包装为名称xxx-jar-with-dependencies.jar
。
这是一个示例pom.xml
maven-assembly-plugin 3.0.0 jar-with-dependencies com.example.yourMain make-assembly package single
现在你应该可以运行你的jar了
java -jar xxx-jar-with-dependencies.jar
- 如何在不使用-cp开关的情况下在Groovy中自动加载数据库jar?
- 执行Mavenunit testing,并将classpath设置为生成的项目JAR
- 如何删除错误_JAVA_OPTIONS:-Xmx512M?
- 如何将本地文件名传递给ClassPathXmlApplicationContext?
- 带有已部署的动态Web项目的WebSphere ClassNotFoundException
- Spring:PropertyPlaceholderConfigurer找不到属性文件
- GWT,Eclipse插件如何将项目与.gwt.xml文件一起重命名? 尝试这样做时会出错
- 确定Matlab加载的java类的位置
- 如何从jdk覆盖类?