gpt4 book ai didi

java - 用于代码操作的 Eclipse 抽象语法树解析器的替代方案

转载 作者:搜寻专家 更新时间:2023-10-31 08:04:08 24 4
gpt4 key购买 nike

背景

我正在编写一个程序,该程序将对 java 源代码目录中的成员和函数进行一些批量重命名,以根据传入程序的查找表 .csv 文件对代码进行去混淆处理。

这是为了我的源代码是针对混淆的 jar 编写的。我有一个通过自定义版本运行的 jar 的去混淆版本 RetroGaurd我想解析传递给 RetroGaurd 的映射文件,以对我的源代码对 jar 进行的函数调用进行去混淆处理。如果我只是编译我的代码并在反编译时也通过 RetroGaurd 运行它,那么我会丢失所有不错的注释和格式(除非我错过了 RetroGaurd 上的一个选项)。


问题

我找到了 Abstract Syntax Tree Eclipse 中内置的解析器,它看起来非常适合我的使用,但是我不打算将我的程序编写为 Eclipse 的插件,这将是一个可以在任何机器上运行的独立 jar。

我主要担心的是,在编写代码时,我对 Eclipse 使用的内部 jar 有很多依赖性。我知道如果我符合 EPL对于库 jar,我可以毫无问题地分发它,但我担心这个项目在我编写它时会变得越来越大,因为需要越来越多的来自 Eclipse SDK 的 jar。

是否有任何其他项目可以让我解析 Java 源代码以像 AST 允许的那样可靠地查找和替换,或者有没有办法使用 RetroGaurd(或类似的程序)来运行相同的反混淆但保持我的评论和功能相同,而不需要通过反编译器运行反混淆程序?

最佳答案

如果您担心需要运行 Eclipse GUI 来执行您的代码,那么您可以考虑以 headless 模式运行插件。这将允许您的插件从命令行运行。看这个SO thread .

您还可以使用任何其他开源 Java 编译器。例如,openjdk's Java compiler .请参阅资源部分。

希望对您有所帮助。

关于java - 用于代码操作的 Eclipse 抽象语法树解析器的替代方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9368132/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com