2011-12-12 105 views
0

我想知道哪些是您認爲解析Java文件並自動更改變量名稱,方法名稱或類名稱的最佳方法。我想這樣做是因爲我想通過改變其中的一小部分(上面列舉的三個之一)來消除一些代碼。如何解析Java文件並自動更改變量/方法名稱/類名稱的名稱?

例如,我可以有一個具有全局變量public static final int index = 0的類,我想將其更改爲public static final int xxx = 0。當然i應該在文件中每次出現時替換爲xxx。類名稱或方法名稱也一樣。

我被告知ANTLR可能爲我工作,但我從來沒有使用它,我不想浪費時間學習它,如果我發現它不適合我的目的。

感謝

編輯: 我不需要混淆代碼,我需要改變的一小部分。以上提到的其中一種。

+0

你有沒有考慮過使用保鏢.. ?? –

+0

在你的問題中,你聲稱你想「破壞一些代碼」,但在你對Oliver的迴應中,你說「我不需要混淆代碼」。那它是哪一個? –

回答

2

如果您只需要更改一些這樣的標識符,那麼重構(由大多數IDE支持,包括Eclipse)是簡單,快速和可靠的。

如果你需要改變很多(例如,如果你想用外語與大致相當於標識符來取代英語的用途 - 比如,counter =>compteur),那麼我會親自發現自己使用可編寫腳本的東西,像sed或Perl。而且我必須非常小心,以確保我打完全匹配(例如,當改變lietruth,我不也改變belief' to 'betruthf

有一點要注意,如果你用自動去,做-A-一次性解決方案:確保您可以在測試之前和之後測試功能,以確保您沒有損壞任何設備。

1

也許最簡單的就是使用現有的代碼混淆,如免費Proguard的: http://proguard.sourceforge.net/

+0

我不需要混淆代碼。我需要改變它的一小部分。可以是類名稱,變量名稱或方法名稱。 – Masiar

1

使用代碼混淆做的工作適合你。

或者使用像Eclipse這樣的IDE,使用Refactor菜單構建這種類型的東西。