定位一个 eclipse 插件运行错误

插件是其它部门做的,同事用这个插件都没有问题,但是我这就不好使了,一打开就报错了:

image

看起来像是某个文件找不到。

但是这个插件拿不到源代码,先找到插件看看有没有什么线索。

找到插件 jar 文件 ‘xxx_Editor_4.5.0.jar’,因为 jar 文件其实就是个 zip 压缩包,用解压软件解压缩:

image

一个个文件夹翻,出错的 class 文件正是:xxxx\alexmaftei\editor\viewsEditor.class

因为 Java 虚拟机里跑的其实都是 bytecode,如果没有进行混淆或者加密什么的,是很容易再反编译回源代码的。

这个工具是公司内部用,没有啥混淆或者加密的必要,所以,应该是没问题可以反编译的。

http://javare.cn 对 viewsEditor.class 进行反编译,成功得到 viewsEditor.java。有希望了!

在源文件中搜索,出问题的函数:

   public void createPartControl(Composite parent) {
      String generalConfigPath = getSoftwareFolderPath() + "/02_SW";
      File file = searchFile(generalConfigPath, "AUTOSAR_MOD_ECUConfigurationParameters.arxml");
...
   }

在目录中手动搜索,文件 AUTOSAR_MOD_ECUConfigurationParameters.arxml 是有的,那应该是 getSoftwareFolderPath() 这个函数的问题。

public static String getSoftwareFolderPath() {
...
   for(int swPath = 0; swPath < subPath.length; ++swPath) {
       if(subPath[swPath].contains("Software")) {
          swPathId = swPath;
       }
    }
...
}

这里居然是匹配含有 “Software” 字符串的文件夹名字。。。而我为了图省事,项目根目录是从这个目录下一级开始。。。所以并没有这个“顶层”文件夹。

 

问题定位了,那么,解决方案只有一个,从 software 目录的上一级开始 get。。。问题解决!

posted @ 2020-12-18 14:58  Biiigfish  阅读(117)  评论(0编辑  收藏  举报