java文件编译_【java】javac编译多个有依赖关系的java文件为class文件
历史文章:
【javac命令不能使用,提示不是内部命令或外部命令,请查看历史文章】
=================需求说明==========================
之前的文章中,仅说明了单个的java文件,没有多的外部依赖的单个java文件编译成class文件。
1.现在有个需求:
在使用一个mybatis-gen-1.2.jar包完成 自动代码生成过程中,【jar包中全是已经编译好的class文件】发现某个地方的源码写的有问题。
现在需要通过将class文件反编译成 java文件,修改源码后,再将java文件编译成可以使用的class文件,以完成这次需求。
2.可以看到,jar包中的文件全是编译的class文件
===================处理方式========================
1.将class文件拖拽至 IDEA中,就可以看到源码了
2.将class文件中的内容,拷贝到一个新建的同名java文件中,然后可以进行修改源码的操作
【因为class文件中的源码无法直接修改,因此将整个文件中的源码拷贝至 一个新建的同名java文件中】
现在代码可以操作了,就直接删除问题代码行
3.现在,按照源码的包路径,在任意的一个文件下,按照包路径创建层级目录,再将文件放入对应目录中
4.这个时候,单独执行编译命令,是不能成功编译文件的,因为本源文件还依赖了其他几个源码文件
从刚刚的源码可以看出来,本文件是依赖了其他几个文件的:
5.所以,需要将本文件依赖的其他几个源码文件,按照相同的方式,打开class文件,新建同名java文件,复制源码到同名java文件,然后创建对应的包路径,将java文件放入对应位置
6.分别放置完成后,新创建一个source.txt文件,将多个需要编译class的java文件,完整路径放在source文件中,注意,文件之间有依赖关系的话,将被依赖的文件放在前面,依赖别的文件的放在后面,保证编译的顺序
7.最后,cmd进入到source.txt文件所在路径,执行javac命令,开始编译工作
javac -encoding utf-8 @source.txt -Xlint:unchecked
注意加上参数:
-Xlint:unchecked
以保证取消验证,顺利编译成功
注意,source.txt文件前面有一个@符号
编译完成,就可以看到各个目录下,已经生成的class文件
8.最后,将编译好的class文件,放入jar包中,替换原本有问题的class文件
9.完成【多个有依赖关系的class文件,复制转化成java文件,修改完源码并重新编译成class文件的】操作!!!
java文件编译_【java】javac编译多个有依赖关系的java文件为class文件相关推荐
- 视频教程-大型Java项目视频教程_王勇老师DRP项目教程完整版292集-Java
大型Java项目视频教程_王勇老师DRP项目教程完整版292集 动力节点王勇老师,CCTV<影响力对话>栏目特约嘉宾,Java培训知名讲师,中国Java培训领军人物,北京动力节点创始人,董 ...
- 【深入Java虚拟机】之七:Javac编译与JIT编译
转载请注明出处:http://blog.csdn.net/ns_code/article/details/18009455 编译过程 不论是物理机还是虚拟机,大部分的程序代码从开始编译到最终转化成物理 ...
- JVM基本概念,Java编译方式,Javac编译的过程
JDK.JRE.JVM之间的关系 JVM是Java 程序的运行环境,它包括class类加载器.JIT动态编译器.执行引擎.以及垃圾收集器等,它可以将java程序生成的字节码文件解释成具体系统平台上的机 ...
- android studio 设置自动编译_某小型公司持续集成工具jenkins实践(JAVA WEB、Android、IOS、html)...
作者:邵磊链接:https://urlify.cn/qIB7fq # 前言 本文可能是网上最全的一篇全端jenkins部署解决方案介绍的文章,一直以来,领导都想解决代码提交和打包问题,尤其是小公司,打 ...
- python pyc文件解析_如何反编译pyc文件
如何将.pyc和.pyo文件反编译为.py文件 pyc大约在python2刚出的时候有.后来就很少找得到了.有一次,不小心把.py删除了,通过pyc还把代码还原了. 你搜索uncompyle2, de ...
- python语言的解释性特点指的是编写的程序不需要编译_解释性与编译型 Python2和python3的区别...
一 基础: 1.解释型语言与编译型语言的区别 首先,我们编程都是用的高级语言(写汇编和机器语言的大牛除外),计算机不能直接理解高级语言,只能理解和运行机器语言,所以必须要把高级语言翻译成机器语言,计算 ...
- 大数据之-Hadoop源码编译_源码编译的意义---大数据之hadoop工作笔记0044
然后我们再来看一下hadoop的源码编译, 先看看,可以去官网去下载,hadoop-2.7.2.tar.gz的源码去 下载了以后我们需要去编译,源码,为什么? 比如:上面这个源码是32位的,那么如果我 ...
- java给定三边_已知三边,判断其是否构成三角形的java程序
题目: 编写程序,读入三角形的三条边, 并确定输入是否有效.如果任意两条边的和大于第 三条边则输入有效.例如:如果输入的三条边是 1,2,1 ,输出应该是: 1,2,1 能否形成三角形? false ...
- 数据结构(java)课后答案_清华大学出版社-图书详情-《数据结构实用教程(Java语言描述)习题参考解答》...
前 言 本书是与作者编著的<数据结构实用教程(Java语言描述)>一书相配套的辅助教材.全书共分为11章,包括绪论.集合.线性表.稀疏矩阵和广义表.栈和队列.树和二叉树.常用二叉树.图.图 ...
最新文章
- 从对比学习(Contrastive Learning)到对比聚类(Contrastive Clustering)
- php实现微信企业向用户付款
- Verilog中for语句的使用
- 《Java程序设计》终极不改版【下】
- python用format保留三位小数_关于Python 保留小数使用format、%、round()、Decimal函数及format和%只能保留到六位问题...
- 2016年第七届蓝桥杯 - 省赛 - C/C++大学A组 - I. 密码脱落
- 《Genesis-3D开源游戏引擎完整实例教程-跑酷游戏篇:简介及目录》(附上完整工程文件)...
- python 2x和python 3x的区别_python2x和3x区别
- leetcode之回溯backtracing专题4
- java 工厂模式的写法_java工厂模式三种详解
- 作者:赵国栋(1974-),男,中关村大数据产业联盟秘书长,北京大数据研究院副院长...
- JKD16正式发布,新特新一览
- DPDK单生产者入队单消费者出队
- Apple Mac OS X每日一技巧016:MacBook电源线如何缠绕
- android 控件获取 获取焦点
- Android是如何绘制View的
- win10如果虚拟化服务器,Win10内置虚拟化技术Virtualization在哪里 Win10查看CPU是否支持VT步骤...
- webrtc视频码率计算
- Unity 3D委托entrust
- python---之cython的使用
热门文章
- python数据库模糊查询_原创:Python编写通讯录,支持模糊查询,利用数据库存储...
- R7-2 试试多线程 (10 分)
- 去掉dist后php后缀也没有了,DVWA:环境搭建 - osc_gz5w458v的个人空间 - OSCHINA - 中文开源技术交流社区...
- Java黑皮书课后题第5章:5.2(重复加法)程序清单5-4产生了5个随机减法问题。改写该程序,使它产生10个随机加法问题,加数时两个1到15之间的整数。显示正确答案的个数和完成测试的时间
- 心电图前波过多_【动态心电】如何阅读24小时动态心电图?
- pyqt 子窗口控制主窗口绘图_实战PyQt5: 005-主窗口QMainWindow
- 怀卡托大学硕士计算机科学,2020年怀卡托大学研究生一般几年毕业
- 百度笔试题:malloc/free与new/delete的区别
- 改变 input[type=range] css样式
- Oracle数据类型与.NET中的对应关系