Fastjson: java.lang.ClassNotFoundException: com.alibaba.fastjson.JSON

Created on 28 May 2016  ·  9Comments  ·  Source: alibaba/fastjson

使用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

不打包直接运行是没有问题的,可能的原因是什么?新手,求指导!谢谢!

Most helpful comment

我也遇到类似问题.我是用idea maven打包jar, 后面用到fastjson才加上,但是maven工程没有自动把fastjson添加到classpath路径,需要手动加入就可以了,或者重新建一个jar就会把当前依赖加到classpath里头,

All 9 comments

打包的时候没有把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里, 配置着provided,这个删去也可。

我也遇到类似问题.我是用idea maven打包jar, 后面用到fastjson才加上,但是maven工程没有自动把fastjson添加到classpath路径,需要手动加入就可以了,或者重新建一个jar就会把当前依赖加到classpath里头,

老哥稳啊,解决了

打包的时候选择deploy,不要选择package

Was this page helpful?
0 / 5 - 0 ratings

Related issues

ghost picture ghost  ·  4Comments

cddesire picture cddesire  ·  3Comments

sd4324530 picture sd4324530  ·  3Comments

luckydzp picture luckydzp  ·  4Comments

wongoo picture wongoo  ·  3Comments