zoukankan      html  css  js  c++  java
  • 定位一个 eclipse 插件运行错误

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

    image

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

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

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

    image

    一个个文件夹翻,出错的 class 文件正是:prehalexmafteieditorviewsEditor.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。。。问题解决!

  • 相关阅读:
    hdu 1443 Joseph 约瑟夫环
    hdu 1568 Fibonacci 对数。。
    UILineBreakMode
    Android RelativeLayout 动态添加组件
    iOS 让view触发点击事件
    读取plist文件数据
    [转]Android获取SD卡视频音频文件
    ubuntu下vim修复
    DMO(DirectX Media Object)的工程创建过程及其调用方式
    《Windows程序设计》笔记 —— Chapter One
  • 原文地址:https://www.cnblogs.com/pied/p/14154953.html
Copyright © 2011-2022 走看看