我有一个带有一个列表框的GUI来显示类中的方法列表。我可以使用反思来实现它。但是,我可以在选择方法名称时查看另一个文本区域中的源代码吗?

我知道分解器。但是我不想在他们的窗口中看到源代码。

我想使用一些第三部分lib,以便我可以在自己的GUI中看到特定方法的源代码。

请建议如果有API可用。

有帮助吗?

解决方案

您将需要某种分解器,您可以链接到。我不确定是否有库,但这是 JD Java分解器.

请记住,您会丢失可变名称等,因此,如果您对所得的源代码进行了反编译,则可能不那么可读。

如果您可以访问源,则可以将其链接到类文件,并在链接的源文件中找到所选的方法源。这可以通过简单的一通源文件来实现。

您最大的问题是确定方法何时结束,一个简单的解决方案是计算 {'沙 }并确定何时 { 该方法声明已关闭。

其他提示

这是一个古老的问题,但是看到过去一年的分解局景观发生了很大变化,我觉得这值得复活。

Procyon 是一个开源框架,其中包含Java分解器。它是用java编写的,可以很容易地将分解器API集成到另一个应用程序中。实际上,已经有两个第三方GUI前端,包括 Secureteam Java分解器.

CFR 尚无源代码可用,但它也是一个出色的反编译器。它也是用Java编写的,虽然我没有尝试将其与现有应用程序集成在一起,但肯定应该有可能。

我曾经创建了包含其自己的源代码查看器的应用程序。我认为这是分解器的一个很好的选择,可以带来相当依赖性。

我正在使用Netbeans,所以包装 .java 文件就像更改一个过滤器选项一样容易。我检查了Java属性以查找JAR文件并将其扫描,就像Java源文件的任何zip文件一样。通过这种方法,具有带有源文件的jtreettectare的GUI,并且显示源代码的JTEXTAREA是微不足道的。

我相信您可以再增加一步 - 剪切源以仅包含所选方法。我认为它应该归结为简单的解析器,该解析器计算出打开和关闭的括号。

如果您需要它,我将离开较早的答案,但是Jode很长一段时间没有更新。搜索,我找不到任何开源或图书馆形式可用的反编译器。

jode 可能只是您想要的。核心分解器在GNU LGPL下以库的形式发布,因此您可以在没有问题的情况下将其集成到程序中。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top