维护没有源代码的遗留 Java 项目

有时你可能不得不修改一些只有 Jar 和 .class 的 Java 项目。

要修改 Jar 包的话需要将 Jar 解压缩,获得 .class 文件(如果要修改的是 .class 当然就可以略过这一步),然后反编译得到源代码,然后编辑源代码重新编译成 .class 文件。

具体这样做:

1、解压缩 Jar 文件(如果要修改的 .class 文件在某个 Jar 文件的话)。

2、反编译要修改的 .class 文件,在相同目录下保存同名的 .java 文件,如果没有反编译工具的 话,我推荐 JD-GUI,到 http://java.decompiler.free.fr/?q=jdgui 去下载 。

3、设置编译所需要的 classpath ,应该是要修改的项目引用的所有 Jar 、class 及解压缩 Jar 文件的根路径

4、编译源文件看能否通过编译,这一步主要测试是否正确设置了编译所需要的 classpath 。

5、如果通过了编译,则现在可以修改源文件,添加新功能或修正 Bug 了,如果没有通过编译,重复 3、4 步。

转载于:https://www.cnblogs.com/moonvan/p/3479753.html

维护没有源代码的遗留 Java 项目相关推荐

  1. 100个Java项目解析,带源代码和学习文档!

    前言 你是否正在寻找带有源代码的Java项目的免费集合?你的搜索到这里结束,我为你提供了近100多个Java项目. 想要成为一个优秀的程序员写项目是绕不开的,毕竟工程学的最终目标都是要创造东西,所以, ...

  2. JAVA工作总是维护项目_开发维护大型 Java 项目的建议

    原标题:开发维护大型 Java 项目的建议 假设你是正在开发和维护一个包含2000个类并使用了很多框架的Java开发者.你要如何理解这些代码?在一个典型的Java企业项目小组中,大部分能够帮你的高级工 ...

  3. java web项目网上银行_网上银行java项目源代码(含最终文档)超棒!

    [实例简介] 网上银行java项目源代码(含最终文档) 超棒!绝对让你满意... [实例截图] [核心代码] 3009218016万冠 └── 3009218016万冠 ├── webBank │   ...

  4. Java项目版本构建是什么意思_Java项目的构建和版本号(ant,cvs,hudson)

    什么是Java项目中的系统构建编号和版本号管理的当前最佳实践?特别: >如何在分布式开发环境中系统地管理构建号 >如何维护源代码中的版本号/可用于运行时应用程序 >如何正确地与源存储 ...

  5. Java项目Lombok

    Project Lombok is a very useful tool for java projects to reduce boiler plate code. Lombok项目对于Java项目 ...

  6. Java项目如何统一日志框架?

    在程序运行的过程中,我们需要在重要的代码逻辑分支点,将关键的程序运行状态信息打印出来,便于我们对程序调试和观察.java项目中有成熟高性能的日志框架,很方便地集成到项目中实现我们对关键信息的打印输出. ...

  7. java项目:基于springboot+vue的实验室预约管理系统 nodejs

    本文从用户的功能要求出发,建立了实验室管理系统,系统中的功能模块主要是实现管理员:首页.个人中心.实验室管理.用户管理.实验室申请管理.设备管理.设备报备管理.设备申请管理.消耗品管理.消耗品领取管理 ...

  8. 视频教程-大型Java项目视频教程_王勇老师DRP项目教程完整版292集-Java

    大型Java项目视频教程_王勇老师DRP项目教程完整版292集 动力节点王勇老师,CCTV<影响力对话>栏目特约嘉宾,Java培训知名讲师,中国Java培训领军人物,北京动力节点创始人,董 ...

  9. 如何将Java项目打包部署到Linux服务器进行访问

    1. 什么是Docker? Docker 是一个开源项目,诞生于 2013 年初, 初是 dotCloud 公司内部的一个业余项目.它基于 Google 公司推出的 Go 语言实现. 项目后来加入了 ...

最新文章

  1. C/C++ static和const关键字的作用
  2. pmcaff智囊团开通啦!能人大拿集聚地,名额有限,速度哟~
  3. 归并排序改良 java_Java 八种排序算法总结
  4. [云炬创业基础笔记]第六章商业模式测试24
  5. PIT,JUnit 5和Gradle –仅需额外的一行配置
  6. 传苹果新iPhone显示屏4英寸 可视面积扩大30%
  7. 用面向对象解决问题(洛谷P1093题题解,Java语言描述)
  8. 搜索引擎蜘蛛给网站带来的危害,有效指引爬虫对应的措施(最准确搜索引擎蜘蛛名称)...
  9. “远程桌面己停止工作”的解决方法
  10. linux用户命令解释器,Linux下的命令解释器 ash.exe
  11. 2021年最新外卖侠cps小程序,三级分销返利外卖领劵小程序源码,带电影票分销积分商城(外卖侠重要功能)
  12. android 连线题实现 自定义view  画线
  13. BZOJ4874:筐子放球
  14. 华硕的电脑装linux系统安装教程,华硕笔记本电脑一键重装系统详细教程
  15. 2017年微商行业八大趋势
  16. python正则匹配中文/英文/数字/其它字符
  17. Nintendo Switch在线订阅包含什么?
  18. BFS(二)二叉树层序遍历(I、II)、二叉树锯齿形层序遍历、N叉树层序遍历
  19. win7中USB音箱没有声音解决办法
  20. 2020年5大热点网络趋势

热门文章

  1. html插音乐怎么设置样式,是否可以设置html5音频标签的样式?
  2. vue 2个方法先后执行_4个简单靠谱的所得税节税方法,老板看完都批示财务执行...
  3. 聊一聊bypass information_schema
  4. 《leetcode》best-time-to-buy-and-sell-stock-i-ii-iii
  5. 【典型错误】The type java.lang.Object cannot be resolved.
  6. 深入理解ThreadLocal
  7. python数据结构和算法3 栈、队列和排序
  8. window tool
  9. C/C++中手动获取调用堆栈【转】
  10. Linux 中 SVN 重启关闭