一、在使用fastjson中遇到的问题

导论:最近在写一个 JavaFx 项目的时候使用到了 fastjson 作为处理 json 数据的依赖。在其它非 JavaFx 项目中也使用到了相同版本的 fastjson,但是可以正常运行,而在 JavaFx 项目中却报异常,刚开始以为是我的依赖没有正确导入,然后删了重新再导入,结果还是报异常。

我创建的是JavaFx项目,不是使用Maven进行依赖管理,因为在idea 2019中创建的JavaFx项目没这个选项。创建完项目后,在项目目录下创建lib目录,然后把fastjson.jar包进来,直接复制过来,还要记得右击选择Add as Library

上面的都是基本操作,相信大家大会的。

当你自信满满,运行项目的时候,就会报异常java.lang.NoClassDefFoundError

image-20230319154848804

这个时候,你就会在网上到处在解决办法,然后还是没有找到解决办法,最后找到这里来了。

你会一度怀疑自己导入的fastjson.jar是否正常,反复确认,感觉并没有什么问题,心想如果没有导入成功,那在调用fastjson中的方法的时候也应该会报错,而不是等到运行的时候才报错。

二、解决办法

遇到问题并解决问题,才能够学到东西。

其实上面这种情况不是没有导入依赖,也不是所谓的JDK版本问题,而是fastjson版本问题。你需要把fastjson的版本降低一下就行了。

所以从这次开发种遇到的问题得出一个结论:并不是所有最新版本的都是最好的,因为最新版本意味着还有很多没有发现的bug。当然后有的人会说,就版本中不是更多bug吗?是的旧版本确实有bug,所以才会推出新版本去修复这些已知的bug,但是如果我们使用的是最新版本的,那么我们将不知道存在哪些bug,这样我们在开发中就要自己去发现bug

Q.E.D.


热爱生活,热爱程序