バックグラウンド
プログラムに渡されたルックアップ テーブル .csv ファイルに基づいてコードの難読化を解除するために、Java ソース コードのディレクトリ内のメンバーと関数の名前を一括で変更するプログラムを作成しています。
これは、私が持っているソース コードが難読化された jar に対して書かれているためです。カスタマイズされたバージョンのRetroGaurdを介して実行された難読化解除されたバージョンの jar があり、RetroGaurd に渡されたマッピング ファイルを解析して、ソース コードが jar に作成する関数呼び出しの難読化を解除したいと考えています。コードをコンパイルし、逆コンパイルするときに RetroGaurd でも実行すると、素敵なコメントと書式設定がすべて失われます (RetroGaurd に見逃したオプションがない限り)。
問題
Abstract Syntax Treeパーサーが Eclipse に組み込まれていることを発見しました。これは私の用途に最適に見えますが、プログラムを Eclipse のプラグインとして作成するつもりはありません。これは、任意のマシンで実行できるスタンドアロンの jar になる予定です。 .
私の主な懸念は、コードを書いているときに、Eclipse が使用する内部 jar に多くの依存関係を取得していることです。ライブラリ jar のEPLに準拠していれば、配布に問題がないことはわかっていますが、Eclipse の SDK からの jar がますます必要になるため、このプロジェクトを作成するにつれて、このプロジェクトがどんどん大きくなっていくのではないかと心配しています。
ASTが許可するように、Javaソースコードを解析して検索と置換を確実に実行できるようにする他のプロジェクトはありますか、またはRetroGaurd(またはそれに似たプログラム)を使用して同じを実行する方法はありますか難読化を解除しますが、後で逆コンパイラを介して難読化解除されたプログラムを実行する必要なく、コメントと機能を同じに保ちますか?