使用Maven打包代码后运行报错:
Exception in thread "main" java.lang.NoClassDefFoundError: com/alibaba/fastjson/JSON
at cn.huberylee.App.main(App.java:28)
Caused by: java.lang.ClassNotFoundException: com.alibaba.fastjson.JSON
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 1 more
不打包直接运行是没有问题的,可能的原因是什么?新手,求指导!谢谢!
打包的时候没有把fastjson打进去。看一下maven的作用域
直接使用的
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.12</version>
</dependency>
这个作用域不对么?
这样写没错,为了验证时不时包没有导进去。你可以看看打的包内部是不是有fastjson包 或者将fastjson包添加到运行环境的lib包内。如果能跑通那就是包的问题,如果还不同是不是可以考虑运行环境的问题。希望对你有帮助
我也遇到类似问题.我是用idea maven打包jar, 后面用到fastjson才加上,但是maven工程没有自动把fastjson添加到classpath路径,需要手动加入就可以了,或者重新建一个jar就会把当前依赖加到classpath里头,
遇到同样的问题,有什么解决方案么。现在只能手动把fastjson的jar包拷过来,运行的时候加到classpath里。
@charlessoft 这个方法有效
会不会是pom.xml里, 配置着
我也遇到类似问题.我是用idea maven打包jar, 后面用到fastjson才加上,但是maven工程没有自动把fastjson添加到classpath路径,需要手动加入就可以了,或者重新建一个jar就会把当前依赖加到classpath里头,
老哥稳啊,解决了
打包的时候选择deploy,不要选择package
Most helpful comment
我也遇到类似问题.我是用idea maven打包jar, 后面用到fastjson才加上,但是maven工程没有自动把fastjson添加到classpath路径,需要手动加入就可以了,或者重新建一个jar就会把当前依赖加到classpath里头,