Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/337.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_Eclipse_Licensing_Decompiling - Fatal编程技术网

Java 反编译器

Java 反编译器,java,eclipse,licensing,decompiling,Java,Eclipse,Licensing,Decompiling,你能为Eclipse推荐一个Java反编译器吗?我的其他问题是,使用来自其他Java程序的反编译代码有哪些限制?非法还是什么?我对许可证不太了解。感谢阅读。是我所知道的最好的Java反编译器。我建议在google上弹出的Java反编译器。 它真的很好用 至于限制,您必须阅读特定软件的许可证,可能有书面规定禁止任何反编译方式 我喜欢——但它在某些地方显示出它的年龄。您将需要: jad二进制文件 jadClipse已安装 将Eclipse首选项指向上面的jad二进制文件 告诉它生成行号并对齐以进行

你能为Eclipse推荐一个Java反编译器吗?我的其他问题是,使用来自其他Java程序的反编译代码有哪些限制?非法还是什么?我对许可证不太了解。感谢阅读。

是我所知道的最好的Java反编译器。

我建议在google上弹出的Java反编译器。 它真的很好用

至于限制,您必须阅读特定软件的许可证,可能有书面规定禁止任何反编译方式

我喜欢——但它在某些地方显示出它的年龄。您将需要:

  • jad二进制文件
  • jadClipse已安装
  • 将Eclipse首选项指向上面的jad二进制文件
  • 告诉它生成行号并对齐以进行调试
有几个缺点:

  • 代码是按顺序生成的,如果字节码被重新排列,那么某些东西在字节码中出现得较晚,但在原始源代码中出现得较早,jad不会倒带以将反汇编的代码放在正确的行中
  • jad不能很好地理解Java5+6字节码

    • 我无法回答你的第一个问题:这可能是有偏见的,也许

      关于第二个问题,反编译是合法的。这一点对我来说非常重要。看看这个有趣的页面:

      我发现它非常好。不过,我遇到了一两个小错误,导致运行时出现意外行为

      例如,我有一个示例,其中原始case语句在最后一个节点上没有“break”(因为这自然是不必要的),但由于JD最终对节点重新排序,这意味着意外调用了“default”case。我还遇到了一个字符集问题,我需要在事情结束时进行一些额外的toString()调用,以便它按预期注销。除此之外,它是伟大的

      我使用了另一个反编译器来帮助我找出JD反编译的代码的错误。但还有其他一些事情DJ无法处理,所以我想这两种反编译器的混合对我来说是可行的:)


      希望Dupuy先生能读到这篇文章

      我尝试了几个反编译器,其中大多数都未能为我试图反编译的小程序生成正确的源代码(以防有人想要复制)

      工作绝对完美的是,它生成的代码不包含语法错误,并且从源代码编译的小程序与原始程序运行完全相同。我在UI方面缺少的是:Ctrl-A/Ctrl-C键盘快捷键不工作,并且没有可用的批处理转换

      我尝试过的其他反编译器有:

      • (免费软件)看起来不错,但它在变量声明方面犯了很多错误(有些声明丢失,有些声明放置得很糟糕)
      • (共享软件)看起来也不错,它生成的代码包含的语法错误比JD少,但代码不起作用。鉴于该产品不是免费的,人们会从中得到更多

      我使用了这个eclipse插件:


      这个java反编译器:

      +1-阅读许可证。“我对许可证不太了解。”如果你因违反许可证条款而被起诉,这不是一个有效的借口。只是提醒一下,这在3.7(Indigo)中目前不起作用.JD-GUI未能通过aspectj反编译weaven类型-呈现的Java代码被截断。我正在围绕JD Eclipse开发一个包装器,以使其变得更好:JD-GUI未能通过aspectj反编译weaven类型-呈现的Java代码被截断。JD-GUI未能通过aspectj反编译weaven类型-呈现的Java代码被截断。类似讨论在“Eclipse类反编译器”中,也许?站点位置为
      http://feeling.sourceforge.net/update/
      。阅读更多,有趣的是,这些问题都是以离题形式结束的,因为像我这样的许多程序员都是为了这些确切的问题而来的(并找到答案,感谢下面发布的答案)。此外,根据本网站的“提问”部分,问题应该“一般包括……程序员常用的软件工具。”我列出了一个清单:Cavaj只是Jad的包装器。不幸的是,Jad没有得到维护,缺少对Java 6/7的支持,例如,它不支持静态导入。它只在美国的某些情况下才合法。至少,根据你提供的链接。