维护没有源代码的遗留 Java 项目
维护没有源代码的遗留 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 项目相关推荐
- 100个Java项目解析,带源代码和学习文档!
前言 你是否正在寻找带有源代码的Java项目的免费集合?你的搜索到这里结束,我为你提供了近100多个Java项目. 想要成为一个优秀的程序员写项目是绕不开的,毕竟工程学的最终目标都是要创造东西,所以, ...
- JAVA工作总是维护项目_开发维护大型 Java 项目的建议
原标题:开发维护大型 Java 项目的建议 假设你是正在开发和维护一个包含2000个类并使用了很多框架的Java开发者.你要如何理解这些代码?在一个典型的Java企业项目小组中,大部分能够帮你的高级工 ...
- java web项目网上银行_网上银行java项目源代码(含最终文档)超棒!
[实例简介] 网上银行java项目源代码(含最终文档) 超棒!绝对让你满意... [实例截图] [核心代码] 3009218016万冠 └── 3009218016万冠 ├── webBank │ ...
- Java项目版本构建是什么意思_Java项目的构建和版本号(ant,cvs,hudson)
什么是Java项目中的系统构建编号和版本号管理的当前最佳实践?特别: >如何在分布式开发环境中系统地管理构建号 >如何维护源代码中的版本号/可用于运行时应用程序 >如何正确地与源存储 ...
- Java项目Lombok
Project Lombok is a very useful tool for java projects to reduce boiler plate code. Lombok项目对于Java项目 ...
- Java项目如何统一日志框架?
在程序运行的过程中,我们需要在重要的代码逻辑分支点,将关键的程序运行状态信息打印出来,便于我们对程序调试和观察.java项目中有成熟高性能的日志框架,很方便地集成到项目中实现我们对关键信息的打印输出. ...
- java项目:基于springboot+vue的实验室预约管理系统 nodejs
本文从用户的功能要求出发,建立了实验室管理系统,系统中的功能模块主要是实现管理员:首页.个人中心.实验室管理.用户管理.实验室申请管理.设备管理.设备报备管理.设备申请管理.消耗品管理.消耗品领取管理 ...
- 视频教程-大型Java项目视频教程_王勇老师DRP项目教程完整版292集-Java
大型Java项目视频教程_王勇老师DRP项目教程完整版292集 动力节点王勇老师,CCTV<影响力对话>栏目特约嘉宾,Java培训知名讲师,中国Java培训领军人物,北京动力节点创始人,董 ...
- 如何将Java项目打包部署到Linux服务器进行访问
1. 什么是Docker? Docker 是一个开源项目,诞生于 2013 年初, 初是 dotCloud 公司内部的一个业余项目.它基于 Google 公司推出的 Go 语言实现. 项目后来加入了 ...
最新文章
- C/C++ static和const关键字的作用
- pmcaff智囊团开通啦!能人大拿集聚地,名额有限,速度哟~
- 归并排序改良 java_Java 八种排序算法总结
- [云炬创业基础笔记]第六章商业模式测试24
- PIT,JUnit 5和Gradle –仅需额外的一行配置
- 传苹果新iPhone显示屏4英寸 可视面积扩大30%
- 用面向对象解决问题(洛谷P1093题题解,Java语言描述)
- 搜索引擎蜘蛛给网站带来的危害,有效指引爬虫对应的措施(最准确搜索引擎蜘蛛名称)...
- “远程桌面己停止工作”的解决方法
- linux用户命令解释器,Linux下的命令解释器 ash.exe
- 2021年最新外卖侠cps小程序,三级分销返利外卖领劵小程序源码,带电影票分销积分商城(外卖侠重要功能)
- android 连线题实现 自定义view 画线
- BZOJ4874:筐子放球
- 华硕的电脑装linux系统安装教程,华硕笔记本电脑一键重装系统详细教程
- 2017年微商行业八大趋势
- python正则匹配中文/英文/数字/其它字符
- Nintendo Switch在线订阅包含什么?
- BFS(二)二叉树层序遍历(I、II)、二叉树锯齿形层序遍历、N叉树层序遍历
- win7中USB音箱没有声音解决办法
- 2020年5大热点网络趋势
热门文章
- html插音乐怎么设置样式,是否可以设置html5音频标签的样式?
- vue 2个方法先后执行_4个简单靠谱的所得税节税方法,老板看完都批示财务执行...
- 聊一聊bypass information_schema
- 《leetcode》best-time-to-buy-and-sell-stock-i-ii-iii
- 【典型错误】The type java.lang.Object cannot be resolved.
- 深入理解ThreadLocal
- python数据结构和算法3 栈、队列和排序
- window tool
- C/C++中手动获取调用堆栈【转】
- Linux 中 SVN 重启关闭