Eclipse下jar包版本不一致等常见问题


我借这个平台简单说说Eclipse下配置环境需要注意的几点,大多数情况下,我们遇到最多的根源就是jar包的版本不一致,比如我调用某个类的方法,这个方法在旧版本其实不存在的,这时候编译不会通过,这种情况还是好的,至少它明确告诉你哪个类存在问题,进而我们可以找到这个类所属的jar包。最要命的是程序运行时出现这种情况,那你肯定会问为什么编译的时候能通过,想一下远程调用,客户端是怎么调用服务器端的对象的,对象时怎么传输的,这一切都可能用到序列化,对于序列化来说,每个类都有一个版本,何止是jar包,当java从硬盘还原为一个对象时,你除了保证这个类的定义在客户端和服务端都存在,而且还要保证它们的版本都要一致,这种问题编译时期是检查不出来的。

除了jar包版本的问题,还有一类的问题也比较常见,那就是工程和jar包引用的顺序,Eclipse通过classpath来定义类的引用关系,通常,我们用的最多的是源代码,源码工程,jar包,它们的顺序很重要,这也是导致jar包版本不一致的一个原因,想象一下,目的工程依赖A工程和B jar包,同时A工程也依赖B jar包,当然也引用了它,那么目的工程到底去寻找直接引用的B jar包呢还是引用A工程依赖的jar包?这三者之间的顺序有关系,我不建议你凭感觉行事,最有效的办法就是设置在B jar包的入口处设置一个断点,看它到底依赖的是哪个jar包。

很多工程都有配置文件,拿我们公司的来说,客户端有启动顺序xml配置文件,服务器端有服务器服务xml配置文件,有没有想过再Eclipse环境下是按什么方式找这些配置文件的,它查找目录的顺序又是怎样的?如果这些配置定义重复了会不会有问题?我就遇到过这样一种情况,A客户端定义了一份启动配置文件xml,平台客户端定义了一份启动配置文件xml,A客户端依赖平台客户端,最后它找到了两份启动配置文件xml,每一个task任务都重复加了一次,导致客户端启动出现问题。

说了上面三点我们经常遇到的问题根源,那么我再说说解决jar包版本问题不一直的最佳途径,首先,你要对哪些工程依赖哪些包,而这些包又是干什么的要熟悉,然后,将这些jar包都整理成一个版本统一放在一个文件夹下,然后将Eclipsewokespace下工程依赖的jar包都指向这个文件夹下,保证整个wokespace下面用到的jar包都是同一个jar。然后,建立工程,最重要的一点是,整个过程保持头脑十分清晰,不要犯低级错误,否则你会疲于奔命,而且,你做的每一个操作你必须要给出足够的理由。第一阶段是编译器通过,保证不会出现编译错误,第二阶段就是程序运行正常,这一阶段通常都是程序启动时会遇到很多问题,这种问题最霸道的解决办法就是深入代码!不要觉得这是一个小问题,深入代码可能会浪费你很多时间,你错了,如果你不深入代码,仅仅凭感觉操作的话,你会浪费十倍的时间!

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值