如题,最近要开发支付功能,自己项目中写的类与导入jar包中的类重复了,不仅仅是类名,连包名也重复了。
比如我自己项目里有com.firefliex.utils.FxUtils类,导入的jar包里也有个com.firefliex.utils.FxUtils类。
网上查了些资料,几乎全部是解决“导入的两个jar包中有类重复”的问题,改变加载顺序就行了。但是我这边的问题就别扭在自己的项目有不少地方用到了我自己写的FxUtils类,而支付功能的实现要使用jar包里的FxUtils类。如果只加载其中一个,另一个对应功能肯定就找不到对应的方法了。另外,改变自己项目中FxUtils类虽然可以解决问题,但这个类项目中有太多引用了,不能轻易修改。所以,除了改路径、类名,还有没有别的方法。小白一个,之前开发的项目都太简单了,没遇到过类似问题,求大神们帮忙啊~

解决方案 »

  1.   

    全部提交代码后,直接右键Rename,多少都不怕,会全部自动改掉,然后再单独提交即可。
    还有为什么你的包名会是com.firefliex.utils?包名不都是"com.你的公司或你自己的名字.xxx"这都能重复?
      

  2.   

    你现在个jarjar,用这个可以统一修改包名
      

  3.   

    问题已解决。感谢以上各位大佬的回复,回来总结一下:
    我这里遇到的问题并不是两个jar包里的类全限定名重复了,而是项目里的一个类和jar包里的一个类重复了,而这两个类里的方法不重复,两个类都在不同的地方起着作用,但是类加载机制导致一个类加载了,另一个类就会忽略掉,因此默认方式来讲,肯定有一部分方法找不到,一部分功能不能实现。
    我的解决方案:把jar包里重复的那个类的所有方法复制粘贴到我自己项目里这个类里,相当于两个类合并起来,即使jar包里那个类混淆过也没关系。
    为什么会出现这种情况呢?是因为我的部门要用到公司里另一个部门开发的开放平台的产品,因为是同一个公司,类又是比较基础的类,所以就造成了全限定名重复这种问题(com.companyname.utils.XXUtil)。