javac命令编译java文件依赖,【java】javac编译多个有依赖关系的java文件为class文件...

历史文章:

【javac命令不能使用,提示不是内部命令或外部命令,请查看历史文章】

=================需求说明==========================

之前的文章中,仅说明了单个的java文件,没有多的外部依赖的单个java文件编译成class文件。

1.现在有个需求:

在使用一个mybatis-gen-1.2.jar包完成 自动代码生成过程中,【jar包中全是已经编译好的class文件】发现某个地方的源码写的有问题。

现在需要通过将class文件反编译成 java文件,修改源码后,再将java文件编译成可以使用的class文件,以完成这次需求。

2.可以看到,jar包中的文件全是编译的class文件

9bb1cfbc5aa51c8f3f28aa86f6111296.png

===================处理方式========================

1.将class文件拖拽至 IDEA中,就可以看到源码了

b52862107f91cd4b0189654c837033fd.png

2.将class文件中的内容,拷贝到一个新建的同名java文件中,然后可以进行修改源码的操作

【因为class文件中的源码无法直接修改,因此将整个文件中的源码拷贝至  一个新建的同名java文件中】

66ffbd26203b45fe277418912dc70ff4.png

现在代码可以操作了,就直接删除问题代码行

f2844f7e725cc31a504bb5df1fb414b4.png

3.现在,按照源码的包路径,在任意的一个文件下,按照包路径创建层级目录,再将文件放入对应目录中

800753de46693e1a3e6fb9f76d1288be.png

94020967b9f7af265085aa7bffdd4609.png

4.这个时候,单独执行编译命令,是不能成功编译文件的,因为本源文件还依赖了其他几个源码文件

a5437ce0bdfbab20168b773d5a2cba72.png

eb8cbc00b82a114dc96ac1a6b523fa53.png

从刚刚的源码可以看出来,本文件是依赖了其他几个文件的:

cc065fbae6fd1b97dd314883a5d7aeb7.png

5.所以,需要将本文件依赖的其他几个源码文件,按照相同的方式,打开class文件,新建同名java文件,复制源码到同名java文件,然后创建对应的包路径,将java文件放入对应位置

af793fea4bf98459462f66fc31001da9.png

35046d6261221ab3a30a9ecfb5416a97.png

f433197286ffb4c31e59c59399033a4c.png

6.分别放置完成后,新创建一个source.txt文件,将多个需要编译class的java文件,完整路径放在source文件中,注意,文件之间有依赖关系的话,将被依赖的文件放在前面,依赖别的文件的放在后面,保证编译的顺序

9a0700e32822e470246f41e61e21ff9a.png

b1f425af0f661b6f0a7821c2699c7360.png

7.最后,cmd进入到source.txt文件所在路径,执行javac命令,开始编译工作

javac -encoding utf-8 @source.txt -Xlint:unchecked

注意加上参数:

-Xlint:unchecked

以保证取消验证,顺利编译成功

注意,source.txt文件前面有一个@符号

c8424eb727d745a1994ee5492172ae4a.png

编译完成,就可以看到各个目录下,已经生成的class文件

2dcf4a20b31a945fce101a6e006f8103.png

e147e287e9dbe0966d37f0ade0f6359f.png

8.最后,将编译好的class文件,放入jar包中,替换原本有问题的class文件

3801080bcdae3b3aaa47c26302e1ce81.png

9.完成【多个有依赖关系的class文件,复制转化成java文件,修改完源码并重新编译成class文件的】操作!!!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值