前言
jide-grids-3.7.3是一个jide的一个jar包,但如果使用的话都会弹出一个对话框。
jar可以到http://www.jidesoft.com/products/grids.htm,或者maven中找到
<dependency>
<groupId>org.bidib.com.jidesoft</groupId>
<artifactId>jide-grids</artifactId>
<version>3.7.3</version>
</dependency>
<dependency>
<groupId>org.bidib.com.jidesoft</groupId>
<artifactId>jide-common</artifactId>
<version>3.7.3</version>
</dependency>
如果能把这个提示框去掉也许就能正常使用了
代码debug
我先使用了反编译工具查看,发现代码是混淆无法查看dialog的代码在哪,最后想到了使用jps和jstack来定位dialog代码位置
1.首先使用jps命令
知道了jpid号是12092
2.jstack命令
从上来能看出最终调用dialog的类是com.jidesoft.utils.Lm(jide-common)
查看众多控件发现com.jidesoft.utils.Lm.showInvalidProductMessage调用的地方都是在中,这是一个静态块(在jvm第一次加载class文件时调用,包括静态变量初始化语句和静态块的执行),修改这个地方有隐患所以我修改了com.jidesoft.utils.Lm.showInvalidProductMessage,无法反编译所以需要一款修改字节码的工具,我使用的是https://github.com/contra/CJBE
3.CJBE修改字节码
先吧com.jidesoft.utils.Lm解压到文件夹中,然后用CJBE打开
在方法区中找到showInvalidProductMessage节点,点击左边的Code Editor,把内容全吧删除只保留return语句
最后点击save method,到此Lm类就修改完成了,最后把修改完成的Lm类重新打包到com.jidesoft.utils
4.测试
没有再弹出dialog了,完美