问题是这样的
我原来的应用中用到了一个SeEngineDeal类,这个类在A.jar中
public class SeEngineDeal{
public static SeEngineDeal getInstance(String appName){
return SeEngineDeal.produce(appName);//这个方法返回一个SeEngineDeal 实例
}}
我现在想做一个兼容的jar包叫B.jar,B.jar中的路径和名称与A.jar一样,这样就是为了不修改应用中的代码,因为应用已经部署到服务器了。
问题来了,现在B.jar中的SeEngineDeal类如下:
public class SeEngineDeal {
public static cn.org.xxx.client.SeEngineDeal getInstance(String appName){
return cn.org.xxx.client.SeEngineDeal.getInstance(appName);
}
...
}
这里的cn.org.xxx.client.SeEngineDeal是新增加的一个C.jar中的类
我用B.jar和C.jar替换掉了A.jar,之后应用没法用了,
报错日志中发现Type mismatch: cannot convert from SecurityEngineDeal to SecurityEngineDeal
我个人理解是cn.org.xxx.client.SeEngineDeal虽然名字与A.jar的SeEngineDeal名字相同但是路径不一样,但是我不知道怎么改啊
只有30分了,解决了都给了

解决方案 »

  1.   

    将路径修改一样后,重新打jar包
    或者,知道哪些地方调用的A包,将import的路径修改
      

  2.   

     关键是C.jar是我不能修改的,是别人的东西,我就是为了不修改调动import A中SeEngineDeal
    才这么做的,有其他的方法吗?
      

  3.   

    为什么我在MSDN问的问题都没人解决啊
      

  4.   

    1  SeEngineDeal   这两个打包的文件 的包名 一致么??
    2 有缓存。。
    3  RP问题, 请LZ 一个一个验证
      

  5.   

    1、你要確定,C.jar和B.jar是否在同一目錄。
    2、你要確定,C.jar中SeEngineDeal類的package。