IDEA有一个很棒的内置功能-反编译器。它工作得很好。我可以复制源代码,但我找不到将所有反编译的java类提取到java文件的选项
这个项目有很多java类和包,所以我很想手动复制它
有人知道如何提取到java源文件吗。谢谢
>
打开现有项目或创建新项目。
转到项目结构设置
转到左侧显示的项目工具窗口。搜索在上一步中添加的jar名称。导航到所需的类或包。
您可以看到该jar的反编译java文件。
遵循IntelliJ JD插件的说明。或者参阅以下说明的摘录。
java -jar fernflower.jar [<source>]+ <destination>
表示1次或多次
例子:
java -jar fernflower.jar -hdc=0 -dgs=1 -rsy=1 -lit=1 c:\Temp\binary\ -e=c:\Java\rt.jar c:\Temp\source\
请注意,如果您为源传递一个“. jar”文件,它将在目标中创建另一个“. jar”文件,但是,在新的“. jar”文件中,文件将是. java而不是. class文件(它不会爆炸jar)。
人们问我:如何获得fernflower.jar?
如果您安装了任何IntelliJ产品,很可能您的计算机上已经安装了Fernflower反编译器。IntelliJ IDEA附带Java字节码反编译器插件(捆绑),它是Fernflower的现代扩展。
>
java -cp fernflower.jar org.jetbrains.java.decompiler.main.decompiler.ConsoleDecompiler [<source>]+ <destination>
<代码>组织。喷气式飞机。Java语言反编译器。主要的反编译器。ConsoleDecompiler是包含运行反编译器的主方法的类。
例子:
mkdir output_src
java -cp fernflower.jar org.jetbrains.java.decompiler.main.decompiler.ConsoleDecompiler -hdc=0 -dgs=1 -rsy=1 -lit=1 ./input.jar ./output_src
如果您没有安装IntelliJ产品,请立即下载它(可在jetbrains.com上获得),或者从源代码中创建您自己的反编译器可执行文件(可在Github上获得)。
截至2017年8月和IntelliJ V2017.2,公认的答案似乎不再完全准确:没有任何<代码>蕨类植物。要使用的jar。
jar文件称为java反编译器。jar不包含主清单。。。相反,您可以使用以下命令(从Mac安装):
java -cp "/Applications/IntelliJ IDEA.app/Contents/plugins/java-decompiler/lib/java-decompiler.jar" org.jetbrains.java.decompiler.main.decompiler.ConsoleDecompiler
(您将得到错误的用法命令,但它确实有效)。
问题内容: 我可以使用什么程序反编译类文件?我实际上会得到Java代码,还是仅仅是JVM汇编代码? 关于此站点上的Java性能问题,我经常看到“反编译” Java类文件以了解编译器如何优化某些东西的人们的回答。 问题答案: 有一些反编译器…快速搜索结果: Procyon: open-source (Apache 2) and actively developed Krakatau: open-so
问题内容: IDEA具有强大的内置功能-反编译器。它可以很好地工作。我可以复制源代码,但是找不到将所有反编译的Java类提取到Java文件的选项。 这个项目有很多Java类和程序包,所以我将很长时间手动复制它。 有谁知道如何提取到Java源文件。谢谢 问题答案: 要从命令行对jar包使用IntelliJ Java反编译器,请遵循此处提供的说明:https : //github.com/JetBra
问题内容: 我有以下由Eclipse生成的代码(.java文件)。 现在,我想从命令行编译以上文件。我转到了源代码所在的目录,并尝试了两个命令: 1. javac HelloWorldSWT.java 2. javac -d / home / myname / workspace / HelloWorldSWT.java 在这两种情况下,我都有相同的错误“无法解析导入org.eclipse”。/
问题内容: 我保存了Java源文件,将其编码类型指定为UTF-8(使用记事本,默认情况下,记事本的编码类型为ANSI),然后尝试使用以下命令对其进行编译: 但它给出了错误信息” 还有什么其他方法可以编译吗? 来源如下: 问题答案: 您的文件 被 读为UTF-8,否则有值“65279”字符就绝不可能出现。期待你的源代码是在平台默认的编码,根据该文件: 如果未指定 -encoding ,则使用平台默认
问题内容: 我已经搜索过了,但是找不到或无法理解。 现在我不是Java程序员,但是我需要将一个Java文件编译成一个现有的(已编译的)Java程序。该Java代码的源代码对我 不可 用,因此我无法编译整个项目。 我对反编译原始项目不感兴趣。 如何仅使用JDK和javac快速完成此操作?(通过命令行是我的首选。) 我知道这样做必须禁用单个java文件外部的错误检查,因为它无法读取依赖项。 在此先感谢
我是Android Studio的初学者,我希望主要活动是在java上而不是在kotlin上。我测试了一些可用的堆栈溢出解决方案,例如: Menu->Tools->Kotlin->将kotlin反编译到java 菜单>工具>Kotlin>显示Kotlin字节码 单击“反编译”按钮 复制java代码 并且总是禁用“反编译”按钮。