标签:
最近在使用已有的一些 jar 包时,发现有些 jar 包中的一些方法无法满足自己的一些需求,例如返回固定的格式,字符串处理等等,因而需要对原有 jar 文件中对应的 class 文件进行二次开发扩展,并重新打包文件,替换原有的 jar 文件,满足测试开发自身的需求。
下面以修改 eclipse 默认注释中的 ${date} 和 ${time} 对应的返回样式(如下图所示),进行实例说明。
整个二次开发的过程如下所示:
0、未修改之前,生成注释的日期、时间显示格式如下所示:
1、获取对应的 jar 包文件,我当前使用的 eclipse 中对应的 jar 文件为:{eclipse 安装目录}\plugins\org.eclipse.text_3.5.300.v20130515-1451.jar,并备份org.eclipse.text_3.5.300.v20130515-1451.jar 文件
2、解压 org.eclipse.text_3.5.300.v20130515-1451.jar 文件到当前目录 org.eclipse.text_3.5.300.v20130515-1451
3、在目录 {eclipase 安装目录}\plugins\org.eclipse.text_3.5.300.v20130515-1451\org\eclipse\jface\text\templates 下反编译字节码 GlobalTemplateVariables.class,生成 GlobalTemplateVariables.java 文件,可使用 jd-gui.exe 反编译字节码 class 文件,并将 GlobalTemplateVariables.class 备份。
4、修改 GlobalTemplateVariables.java 文件
------------------------------------- ${date} : 日期格式修改,改为如下所示 public static class Date extends SimpleTemplateVariableResolver { public Date() { super("date", TextTemplateMessages.getString("GlobalVariables.variable.description.date")); } protected String resolve(TemplateContext context) { // return DateFormat.getDateInstance().format(new Date()); // Modify by aaron.ffp 2015-12-11 final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); return sdf.format(new java.util.Date()); } } ------------------------------------- ${time} : 时间格式修改,改为如下所示 public static class Time extends SimpleTemplateVariableResolver { public Time() { super("time", TextTemplateMessages.getString("GlobalVariables.variable.description.time")); } protected String resolve(TemplateContext context) { // return DateFormat.getTimeInstance().format(new Date()); // Modify by aaron.ffp 2015-12-11 final SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss.SSS"); return sdf.format(new java.util.Date()); } }
5、编译 GlobalTemplateVariables.java 文件
6、打包
7、替换原 org.eclipse.text_3.5.300.v20130515-1451.jar 文件
8、验证
至此, Java学习-039-源码 jar 包的二次开发扩展实例(源码修改) 顺利完结,希望此文能够给初学 JavaWeb 的您一份参考。
最后,非常感谢亲的驻足,希望此文能对亲有所帮助。热烈欢迎亲一起探讨,共同进步。非常感谢! ^_^
Java学习-039-源码 jar 包的二次开发扩展实例(源码修改)
标签:
原文地址:http://www.cnblogs.com/fengpingfan/p/5038767.html