记录一下~~
1、首先将jar包解压缩,并使用IDEA打开
2、在打开的项目中找到需要修改的class文件,在相同位置新增一个同名的java文件,并将class文件中的内容复制到java文件中,之后根据自己的需要更改java文件中的内容。我需要在实体类中增加一个属性testname:
变更前的class文件和java文件如图:
变更后的java文件:
3、在jar包解压缩的目录下新增lib文件夹,并将编译当前java文件需要的依赖放入lib中
4、在项目根目录下打开命令窗口,输入命令:javac -cp ./lib/* 当前编译j的ava文件路径,成功之后同名的class文件中的内容将与java中的内容保持一致。
变更后的class文件:
5、最后将项目中的class文件替换jar包中class文件就可以了。
过程中遇到的问题:
问题1:编码GBK的不可映射字符
原因:这是无法编译汉字引起的,只需要在编译的时候指定字符编码为utf-8即可,例如:
javac -cp ./lib/* -encoding utf-8 当前编译j的ava文件路径
问题2:使用或覆盖了已过时的 API。注: 有关详细信息, 请使用 -Xlint:deprecation 重新编译。
原因:这个问题是因为当前使用的jdk版本和源码用的版本不一致,有些用法不支持,可以通过:javac -cp ./lib/* -Xlint:deprecation 当前编译j的ava文件路径 查询出错的位置。
问题3:使用了未经检查或不安全的操作。注: 有关详细信息, 请使用 -Xlint:unchecked 重新编译。
原因:代码中有些写法不符合规范,校正写法之后重新编译即可,
可以通过:javac -cp ./lib/* -Xlint:unchecked 当前编译j的ava文件路径 详细查看。