最近下了一个StatSVN代码统计工具,发现中文乱码,非常无奈!
用jd-gui反编译得到了java文件,可是由于一些内部类、包、lib文件找不到,还的成项目后无法编译通过,于是想来想去,认真研究了一下jdk的源代码,看了一下String的存储结构,终于采用直接修改class文件的方法可以得到解决,而且不用再编译。后来高人指点,先将jar文件解压,把要修改的那个class文件所在包拷完全复制到某一磁盘(比如D:)根下,将要修改的class文件反编译得到的java源文件放到此class文件的同一目文件录下,进入cmd命令,切换到刚才那个磁盘(命令cd D:),然后用命令javac 目录\XXX.java,编译后,将jar中的class用编译后class文件替换即可。
比如:
你要修改的test.class文件在D:/com/test/下(可能D:/com/test/下面还有很多其它class文件,不用删掉他们),则将test.class反编译得到test.java放到D:/com/test/,然后修改test.java,进入cmd,采用命令cd D:切换到D:,用命令javac com/test/test.java编译,这样就不会出现错误,完全没问题。