Exception in thread "Thread675" java.lang.NoClassDefFoundError: org/apache/ibatis/io/Resources

–>

遇到问题的缘由是我在本地(Windows)平台下写了一个客户端和服务端的程序,服务端因为要接受客户端发来的数据进而对本地数据库(MySql)进行操作,而且我底层用的的Mybatis进行数据库从增删改查,因此会涉及到两个jar包,一个是连接数据库的,一个是Mybatis需要的。本地运行是没有任何问题的。一个在发,一个在收,并且能够更改数据成功
后来我需要放到服务器(Ununtun)上运行,用eclipse打包是没有问题的,用ftp上传也没有问题,组后执行的命令也没有问题,其实整个程序也是打通了的,只是最后执行出来的结构却似乎没有改到服务器上数据库的数据,整个流程你应该保证数据库的连接(包括名字)操作语句等和本地是一样;
排除以上干扰后,我们先来看报错信息:
Exception in thread "Thread675" java.lang.NoClassDefFoundError: org/apache/ibatis/io/Resources
1、首先第一行org/apache/ibatis/io/Resources这条语句好像是某个引入的包吧,而报错的信息好像就是说没有找到某个类,现在看我的整个工程
Exception in thread "Thread675" java.lang.NoClassDefFoundError: org/apache/ibatis/io/Resources
很疑惑,工程中其实是添加了包的,而且我也很确定打包也是包含了这两个jar包的。最后我们提到报错的那两行71和183
Exception in thread "Thread675" java.lang.NoClassDefFoundError: org/apache/ibatis/io/ResourcesException in thread "Thread675" java.lang.NoClassDefFoundError: org/apache/ibatis/io/Resources
一个是读取资源配置文件,一个是对数据库的增删改查,最后似乎并没有问题,难道是运行的时候才找不到这个类吗?

解决办法
最后我在服务器上安装的jdk里面(jdk/jre/bin/)再次将我项目中两个jar包加入到这个路径下,最后发现成功了:
Exception in thread "Thread675" java.lang.NoClassDefFoundError: org/apache/ibatis/io/Resources
因为可以看出jre是Java程序的运行环境,如果环境中没有相应的执行包,报错也是正常不过的。

总结:如果还是遇到这种问题,下次可以先判断运行的程序是否带有相应的jar包,之后可以怀疑jre是否可以执行对应的jar包,如果不可以就需要在jre的bin目录下添加对应的包。

本文来源 互联网收集,文章内容系作者个人观点,不代表 本站 对观点赞同或支持。如需转载,请注明文章来源,如您发现有涉嫌抄袭侵权的内容,请联系本站核实处理。

© 版权声明

相关文章