快捷修改jar包代码

背景:最近团队维护项目,涉及到文件下载,之前使用aliyun-oss-sdk-android-2.3.0.jar下载OSS的文件,现在添加文件服务器,参考了aliyun-oss的断点续传下载机制,后来发现aliyun-oss的库默认就写死了80端口,但是我们的文件服务器不是80端口。所以想到改一下里面的代码

思路一:直接写下载代码

  1. 一大堆续传逻辑,需要编写调试验证;
  2. 临发布才发现有这种问题。

最终因为时间紧迫,考虑其他方案。

思路二:拉源代码修改

这种思路还是比较科学的,只是在此时想到了思路三,然后就尝试了一番。

思路三:部分修改,编译

  1. 用JD-GUI(反编译)打开aliyun-oss-sdk-android-2.3.0.jar包,拷贝com.alibaba.sdk.android.oss.internal.RequestMessage代码。
  2. 用7z打开aliyun-oss-sdk-android-2.3.0.jar包,删掉com.alibaba.sdk.android.oss.internal.RequestMessage.class。
  3. 新建工程,导入修改后的aliyun-oss-sdk-android-2.3.0.jar,新建com.alibaba.sdk.android.oss.internal包,新建RequestMessage.java,把第一步的代码拷贝过来,修改代码:

    String baseURL = scheme + "://" + urlHost + ":" + this.endpoint.getHost();

    注意:包名类名要一样。

  4. 编译。
  5. target下com.alibaba.sdk.android.oss.internal.RequestMessage.class用7z拉回jar包的com.alibaba.sdk.android.oss.internal。
  6. 完成。

总结:拷贝代码,删掉jar包里的class,修改代码,编译生成class,拉回jar包。

原文 

https://segmentfault.com/a/1190000018839520

本站部分文章源于互联网,本着传播知识、有益学习和研究的目的进行的转载,为网友免费提供。如有著作权人或出版方提出异议,本站将立即删除。如果您对文章转载有任何疑问请告之我们,以便我们及时纠正。

PS:推荐一个微信公众号: askHarries 或者qq群:474807195,里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

转载请注明原文出处:Harries Blog™ » 快捷修改jar包代码

赞 (0)
分享到:更多 ()

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址