历史文章:

【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文件相关推荐

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

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

  2. 【深入Java虚拟机】之七:Javac编译与JIT编译

    转载请注明出处:http://blog.csdn.net/ns_code/article/details/18009455 编译过程 不论是物理机还是虚拟机,大部分的程序代码从开始编译到最终转化成物理 ...

  3. JVM基本概念,Java编译方式,Javac编译的过程

    JDK.JRE.JVM之间的关系 JVM是Java 程序的运行环境,它包括class类加载器.JIT动态编译器.执行引擎.以及垃圾收集器等,它可以将java程序生成的字节码文件解释成具体系统平台上的机 ...

  4. android studio 设置自动编译_某小型公司持续集成工具jenkins实践(JAVA WEB、Android、IOS、html)...

    作者:邵磊链接:https://urlify.cn/qIB7fq # 前言 本文可能是网上最全的一篇全端jenkins部署解决方案介绍的文章,一直以来,领导都想解决代码提交和打包问题,尤其是小公司,打 ...

  5. python pyc文件解析_如何反编译pyc文件

    如何将.pyc和.pyo文件反编译为.py文件 pyc大约在python2刚出的时候有.后来就很少找得到了.有一次,不小心把.py删除了,通过pyc还把代码还原了. 你搜索uncompyle2, de ...

  6. python语言的解释性特点指的是编写的程序不需要编译_解释性与编译型 Python2和python3的区别...

    一 基础: 1.解释型语言与编译型语言的区别 首先,我们编程都是用的高级语言(写汇编和机器语言的大牛除外),计算机不能直接理解高级语言,只能理解和运行机器语言,所以必须要把高级语言翻译成机器语言,计算 ...

  7. 大数据之-Hadoop源码编译_源码编译的意义---大数据之hadoop工作笔记0044

    然后我们再来看一下hadoop的源码编译, 先看看,可以去官网去下载,hadoop-2.7.2.tar.gz的源码去 下载了以后我们需要去编译,源码,为什么? 比如:上面这个源码是32位的,那么如果我 ...

  8. java给定三边_已知三边,判断其是否构成三角形的java程序

    题目: 编写程序,读入三角形的三条边, 并确定输入是否有效.如果任意两条边的和大于第 三条边则输入有效.例如:如果输入的三条边是 1,2,1 ,输出应该是: 1,2,1 能否形成三角形? false ...

  9. 数据结构(java)课后答案_清华大学出版社-图书详情-《数据结构实用教程(Java语言描述)习题参考解答》...

    前 言 本书是与作者编著的<数据结构实用教程(Java语言描述)>一书相配套的辅助教材.全书共分为11章,包括绪论.集合.线性表.稀疏矩阵和广义表.栈和队列.树和二叉树.常用二叉树.图.图 ...

最新文章

  1. 从对比学习(Contrastive Learning)到对比聚类(Contrastive Clustering)
  2. php实现微信企业向用户付款
  3. Verilog中for语句的使用
  4. 《Java程序设计》终极不改版【下】
  5. python用format保留三位小数_关于Python 保留小数使用format、%、round()、Decimal函数及format和%只能保留到六位问题...
  6. 2016年第七届蓝桥杯 - 省赛 - C/C++大学A组 - I. 密码脱落
  7. 《Genesis-3D开源游戏引擎完整实例教程-跑酷游戏篇:简介及目录》(附上完整工程文件)...
  8. python 2x和python 3x的区别_python2x和3x区别
  9. leetcode之回溯backtracing专题4
  10. java 工厂模式的写法_java工厂模式三种详解
  11. 作者:赵国栋(1974-),男,中关村大数据产业联盟秘书长,北京大数据研究院副院长...
  12. JKD16正式发布,新特新一览
  13. DPDK单生产者入队单消费者出队
  14. Apple Mac OS X每日一技巧016:MacBook电源线如何缠绕
  15. android 控件获取 获取焦点
  16. Android是如何绘制View的
  17. win10如果虚拟化服务器,Win10内置虚拟化技术Virtualization在哪里 Win10查看CPU是否支持VT步骤...
  18. webrtc视频码率计算
  19. Unity 3D委托entrust
  20. python---之cython的使用

热门文章

  1. python数据库模糊查询_原创:Python编写通讯录,支持模糊查询,利用数据库存储...
  2. R7-2 试试多线程 (10 分)
  3. 去掉dist后php后缀也没有了,DVWA:环境搭建 - osc_gz5w458v的个人空间 - OSCHINA - 中文开源技术交流社区...
  4. Java黑皮书课后题第5章:5.2(重复加法)程序清单5-4产生了5个随机减法问题。改写该程序,使它产生10个随机加法问题,加数时两个1到15之间的整数。显示正确答案的个数和完成测试的时间
  5. 心电图前波过多_【动态心电】如何阅读24小时动态心电图?
  6. pyqt 子窗口控制主窗口绘图_实战PyQt5: 005-主窗口QMainWindow
  7. 怀卡托大学硕士计算机科学,2020年怀卡托大学研究生一般几年毕业
  8. 百度笔试题:malloc/free与new/delete的区别
  9. 改变 input[type=range] css样式
  10. Oracle数据类型与.NET中的对应关系