• Beyound Compare中比较java字节码class文件


    背景

    项目维护的时候版本混乱或者外出在现场项目排错的时候难免要比对两个jar/class/war文件的源代码。

    通常情况下这个时候我们用jd-gui直接把文件拖进去比对,这种情况只适合单一文件的比对。

    如果一个lib目录下有很多jar或者class文件要比对,这个时候工作量就比较大了。

          笔者去年这个时候在网络上研究了一番,找到了一个可以批量反编译的中间件,后来写了一遍文章CFR - another java decompiler批量反编译jar文件

    这个可以批量反编译,具体移步看那篇文章。在以上工作背景下,笔者整理出一个可以批量

    比对java字节码的beyond comapre的插件,如下图所示

    使用方法很简单,只要选中两个class/jar/war就可以比较了。

    使用方法

    下载本文中的附件,双击配置文件导入即可。

    其他

    笔者有尝试把maven仓库里面的jar附加到java -classpath路径中,显示"输入行太长"错误。如果你有办法打开beyond compare安装目录下面

    的HelpersJava目录编辑CLASS_to_JAVA_cfr.bat或者相关批处理文件,欢迎留言给我。

    CLASS_to_JAVA_cfr.bat

    @echo off
    java -classpath HelpersJavacfrcfr_0_128.jar%jarFiles% org.benf.cfr.reader.Main %1 --caseinsensitivefs true > %2

    javaDevEnv.bat

    @echo off
    setlocal ENABLEDELAYEDEXPANSION
    set jarFiles=
    for /F %%i in (cfrcp.txt) do ( set jarFiles=!jarFiles!;%%i)
    echo %jarFiles%

    setclasspath.bat

    @echo off
    color 17
    title 正在生成class环境变量文件
    
    dir /s /b /d D:developapache-maven-3.5.3
    epo*.jar > "%cd%cp.txt"
    title 环境变量文件已经生成....

     附件

    BCSettings.bcpkg

  • 相关阅读:
    最新Linux系统Ubuntu16.04搭建HUSTOJ(LAMP环境)
    deepin下codeblocks更改调试终端
    UVA
    POJ3436 ACM Computer Factory【EK算法】
    HDU4738 Caocao's Bridges【强连通】
    HDU4685 Prince and Princess【强连通】
    HDU4635 Strongly connected【强连通】
    POJ3177 Redundant Paths【双连通分量】
    HDU1233 还是畅通工程【最小生成树】
    3D正方体
  • 原文地址:https://www.cnblogs.com/passedbylove/p/8983955.html
Copyright © 2020-2023  润新知