如何解析Java文件并自动更改变量/方法名称/类名称?

时间:2011-12-12 17:38:35

标签: java parsing

我想知道您认为哪种解析Java文件并自动更改变量名称,方法名称或类名称的最佳方法。我想这样做是因为我想通过改变它的一小部分来代替一些代码(上面引用的三个中的一个)。

例如,我可以拥有一个具有全局变量public static final int index = 0的类,我想将其更改为public static final int xxx = 0。当然,i应该在文件的每次出现时替换为xxx。类名或方法名也一样。

我被告知ANTLR可能对我有用,但我从未使用它,我不想浪费时间学习它,如果那时我发现它不适合我的目的。

由于

编辑: 我不需要混淆代码,我需要更改它的一小部分。上面提到的其中一个。

3 个答案:

答案 0 :(得分:2)

如果您只需要更改一些此类标识符,那么重构(大多数IDE支持,包括Eclipse)都是简单,快速和可靠的。

如果你需要改变很多(例如,如果你试图用外语中大致相同的标识符替换英语的使用 - 例如,counter => compteur),然后我个人发现自己使用了可编写脚本的东西,比如sed或Perl。我会非常小心地确保我确保匹配完全匹配(例如,将lie更改为truth时,我也不会更改belief' to 'betruthf

如果您采用自动化,一次性批量解决方案,请务必谨慎:确保您可以在之前和之后测试功能,以确保您没有破坏任何东西。

答案 1 :(得分:1)

也许最简单的方法是使用现有的代码混淆器,就像免费的Proguard一样: http://proguard.sourceforge.net/

答案 2 :(得分:1)

使用代码混淆器为您​​完成工作。

或者使用像Eclipse这样的IDE,它使用Refactor菜单内置了这种东西。