Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
“我该怎么做?”;“反编译”;Java类文件?_Java_Decompiler - Fatal编程技术网

“我该怎么做?”;“反编译”;Java类文件?

“我该怎么做?”;“反编译”;Java类文件?,java,decompiler,Java,Decompiler,我可以使用什么程序来反编译类文件?我真的会得到Java代码,还是仅仅是JVM汇编代码 在这个网站上的Java性能问题上,我经常看到一些人的回答,他们“反编译”了Java类文件,以查看编译器如何优化某些东西。看一看。要查看Java源代码,请查看一些反编译程序。搜索jad 如果您想查看字节码,只需使用JDK附带的javap。有一些反编译器。。。快速搜索可得到: :开源(Apache 2)并积极开发 :开源(GPLv3)并积极开发 :开源(MIT)并积极开发 还有更多 它们生成Java代码。Ja

我可以使用什么程序来反编译类文件?我真的会得到Java代码,还是仅仅是JVM汇编代码


在这个网站上的Java性能问题上,我经常看到一些人的回答,他们“反编译”了Java类文件,以查看编译器如何优化某些东西。

看一看。

要查看Java源代码,请查看一些反编译程序。搜索jad


如果您想查看字节码,只需使用JDK附带的javap

有一些反编译器。。。快速搜索可得到:

  • :开源(Apache 2)并积极开发
  • :开源(GPLv3)并积极开发
  • :开源(MIT)并积极开发
  • 还有更多


    它们生成Java代码。Java附带了一些东西,可以让您查看JVM字节码()。

    您可以使用一些程序。您将获得实际的Java代码,但有时代码会被混淆,因此方法由一个字母或数字或字母和数字的随机组合命名

    我用的是


    它有一个插件。这非常好。

    大多数Java反编译器都基于。这是一个很棒的工具,但不幸的是,它已经有一段时间没有更新了,并且不能很好地处理Java1.5+类。我还没有看到任何能够正确处理1.5+类的工具

    2016年2月更新:

    将JAD列为:

    最流行的Java反编译器,但主要只适用于这个时代。用C++编写的,非常快。 过时、不受支持且无法正确反编译Java 5及更高版本

    因此,您的里程数可能会因最近的jdk(7、8)而有所不同

    同一站点列出了其他工具

    正如在(2017年9月)中提到的,javadecompiler提供了一个SaaS,您可以在其中将
    .class
    文件上传到云中,并返回反编译的代码


    原始答复:2008年10月

    • JSR176的最终版本定义了J2SE5.0(JavaSE5)的主要特性,已于2004年9月30日发布
    • 由Pavel Kouznetsov先生编写的著名Java反编译器JAD支持的最新Java版本是
    • 现在可以从Internet下载的大多数Java反编译器,如“DJ Java反编译器”或“Cavaj Java反编译器”,都是由JAD提供支持的:它们无法显示Java 5源代码
    (另一个快速Java反编译器)有:

    • 显式支持反编译和分析Java5+“.class”文件
    • 一个漂亮的GUI:

    它与JDK1.1.8到JDK1.7.0等编译器配合使用

    它的特点是一个在线的,实际上是完全功能!您只需在页面上放置一个jar文件,即可查看反编译的源代码,而无需安装任何东西。

    是较新Java代码的一个选项。至少它有一个优点,就是最近还在维护

    另外,它是一个反编译器,具有独立GUI和Eclipse集成

    最后,没有提到,尽管它没有其他选项那么精致。

    • JAD是一个有效且简单的工具

    • 另外,如果您只想查看这些方法,请使用javap

      • 真的很好。您只需打开一个文件并浏览代码,就像
        您正在使用IDE。好东西。

        目前列出的所有JAD链接似乎都已断开,所以我找到了这个网站。非常有效(至少对于Linux是如此)!在Ubuntu11.10上,无论出于何种原因,我不得不下载静态版本


        如果您想了解Java编译器如何做某些事情,您不需要反编译,而是需要反汇编。反编译涉及将字节码转换为Java源代码,这意味着大量低级信息丢失,如果您想了解编译器优化,这可能正是您感兴趣的信息

        不管怎样,我碰巧写了一封信。与Javap不同,它甚至可以在高度病态的类上工作,因此您可以看到模糊处理工具对您的类做了什么。它也可以进行反编译,不过我不推荐它。

        包括一个反编译器。这是自由和开放源码软件。

        JAD不适合我(Ubuntu11.10版),所以我继续前进,继续前进。至少它有开放的Java源代码,并且能够正确地反编译我的.class

        我建议首先查看“分支/通用”分支。树干不稳

        我试了几次,似乎效果最好。它正在积极开发中,支持Java最新版本的许多功能

        以下是我尝试过的其他方法:

          • 有希望,但经常失败的方法反编译。我会一直盯着这个。还积极开发,支持最新的Java功能
          • 采取了一种不同的方法,它尝试输出等效的Java代码,而不是尝试重建原始源代码,这有可能使模糊代码变得更好。从我的测试来看,它和Pryyon差不多,但有不同的东西还是不错的。我必须使用
            -skip
            命令行标志,这样它就不会在出现错误时停止。积极开发,有趣的是,它是用Python编写的
          • 成功了,但Procyon的输出要好得多。这是一个例子。JD-GUI也可以作为一个,这对我根本不起作用。它似乎不是开源的,开发似乎是零星的
          • 工作正常,但仅支持Java1.4及以下版本。也可作为。不再在开发中

        以下是截至2015年2月的反编译器列表:

        Procyon,开源

        CFR,免费,无可用源代码

        JD,非商业用途免费