我们经常需要对单独Java文件进行编译。
最简单的情况是我们Java源代码不依赖外部任何jar包,此时直接使用javac命令就可以编译成class文件;或者依赖少量的jar包,我们依然可以在命令行中带上-classpath参数和依赖jar包,依然可以很轻松编译出class文件。
还有一种是尽管项目比较复杂,但是源代码都在自己手中,也可以使用项目搭建的编译环境编译出来。
但是若我们是从网上下载的系统,发现了Bug,需要对立面的class文件进行修改和替换的时候,编译倒是个问题;或者我们需要对系统快速解决bug,替换jar文件的时候。本文章方法是一种快速通用的解决方案。该方案使用ant,因此需要建立build.xml文件:
build.xml
在build.xml文件同目录建立libs目录,最终如图:
./... libs/... build.xml
使用步骤:
首先可以使用java decompiler反编译工具将jar文件反编译出java文件,找出需要修改的java文件;修改之后保存为java文件,将java文件放到build.xml同目录;最终文件结构如下:
./... libs/........../依赖1.jar........../依赖2.jar... build.xml... Java源文件
再将jar文件,包括系统运行可能需要的jar文件放到libs目录下。在build.xml同目录下运行ant命令,即会在当前目录下编译出所需class文件。
class文件编译出之后,就可以使用7-zip软件打开jar文件并将class文件替换掉jar文件里面对应的class文件,这样就快速实现了jar文件的升级和补丁工作。
这是通用方法,以后遇到其它jar文件同样可以这样快速编译和解决bug。