1. 破解

默认是30天免费使用,下面给出一些破解思路和方法:

  1. 网上找破解密钥,大多数都是无效的;
  2. 每30天重新安装一次软件即可。事实上,BC的30天并不是指自然月30天,而是,每次打开的日期记一次使用天,半个月不用的话,下次打开使用,剩余使用天数只是减1
  3. ​Windows + E​​​快捷键,打开路径​​C:\Users\<user>\AppData\Roaming\Scooter Software​​​,找到Beyond Compare 4 文件夹 ,删掉。重启电脑 ,重新打开,发现没有之前那个恼人的剩余使用天数提示,即可永久正常使用。
    但是下一次打开时,发现:

​C:\Users\<user>\AppData\Roaming\Scooter Software\Beyond Compare 4\BCState.xml​

<?xml version="1.0" encoding="UTF-8"?>
<!-- Produced by Beyond Compare 4 from Scooter Software -->
<BCState Version="1" MinVersion="1">
<TBcState>
<FirstStartup Value="False"/>
<FormPositions>
<TViewFrame Value="2008;159;3640;1043;3"/>
</FormPositions>
</TBcState>
<TCheckForUpdatesState>
<Build Value="25886"/>
<LastChecked Value="2021-08-20 16:38:59"/>
</TCheckForUpdatesState>
</BCState>

文本比较神器Beyond Compare使用教程_java

2. 安装Java反编译插件

工作中遇到一个需求,比较jar包的差异;更有甚者,需要比较两个war包的不同。记得好像是公司的一个软件产品的hot-fix(我司以jar包或者war包形式提供hot-fix),但是后来发现这个hot-fix有点问题,故而需要对jar/war做分析;可能这个处理思路有点问题。不过我当时是这么处理的。如果有更好的处理思路,还请不吝留言。
总而言之,要比较jar/war包里面的编译后的class文件的不同。百度/google之后,可供参考的解决方案是安装反编译插件,可以把.class文件反编译成.java文件。

  1. 下载beyond compare插件
    下载地址:
    windows下的官网下载地址:http://www.scootersoftware.com/download.php?z=kb_moreformats_win
    linux 扩展的官网下载地址:http://www.scootersoftware.com/download.php?zz=kb_moreformats_nix
  2. 选择中文版的下载导入

    类似这样以bcpkg为文件后缀名的。进入页面点 Download All就行(但有时候点Download All下载的是空的扩展文件,这时候需要勾选想要使用的扩展再点Download Marked才可以)。
  3. 打开beyond comare,选择工具-》导入设置-》导入WindowsFormats.bcpkg
  4. 重新打开beyond comare。
    这个反编译工具默认对中文的反编译不支持,需要做以下修改:
  1. 找到这个目录:BeyondCompare\Helpers\Java;
  2. 编辑该目录下的 CLASS_to_JAVA.bat 文件,修改其内容为“Helpers\Java\jad.exe -8 -p %1 > %2”,其中的-8参数就是将Unicode字符转换为ANSI字符串的关键参数;
  3. 打开beyondcompare,工具->文件格式,按下图修改:
  1. 重启beyondcompare。

3. 比较远程服务器文件

不同机器之间如何比较文件?

BC工具支持ftp,sftp协议的。因此只需要在路径输入远程机器的路径就可以。

例如我现在需要增量发布代码,但是很多时候容易漏掉文件什么的。左侧的路径选择本机的编译好的类目录,右侧远程主机。

文本比较神器Beyond Compare使用教程_eclipse_02


关于远程主机的路径写法:

​sftp://iepweb@<ip>//app/tomcat-7.0.70/webapps/ROOT/WEB-INF/classes​​ 路径分为3个部分:

  1. 使用的协议,例如sftp,或者ftp协议。格式与http一样都是后面跟上://
  2. 主机定位信息,就是用户名@主机ip的形式。
  3. 要比较的目录全路径。这样该工具就会将windows与linux的这两个目录比较了。

一些说明:

  1. 差异比较的时候不要选择比较时间,规则 -> 比较选项卡中时间戳不参与比较,否则每个文件都不一样。
  2. 该工具添加一个插件可以直接将class文件反编译成java文件的,装上插件之后class也是可以比较的。
  3. 发布增量代码的时候选择需要同步的文件,右键选择复制到右边,或者复制到左边,具体看你想更新那边的文件。

4. 在Eclipse中外挂使用BC

Eclipse自带的文本比较工具太差劲,在代码提交的时候的一个噩梦就是冲突;很多时候git diff显得心有余而力不足(也很有可能是我的使用/打开方式不对!)。

那Eclipse能不能使用Beyond Compare呢?即BC有没有针对Eclipse的插件呢?

Beyond Compare的插件​​下载地址​​​ 下载最新版​​org.eclipse.externaltools-Update-0.8.9.v201003051612.zip​

然后就是老生常谈的Eclipse安装插件;不清楚的话,上面的下载网站也有说明。

装好之后,打开Eclipse,选择菜单 Window -> Preferences,弹出窗口,在左边External Tools下面就会多出Beyond Compare,在右边直接按Browse…按钮,选择Beyond Compare的安装位置:

文本比较神器Beyond Compare使用教程_eclipse_03


以后比较时就可以用Beyond Compare。

5. BC实用发布功能