热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

如何反编译为java文件intellij的想法

如何解决《如何反编译为java文件intellij的想法》经验,为你挑选了3个好方法。

IDEA有一个很棒的内置功能 - 反编译器.它工作得很好.我可以复制源代码,但我找不到将所有反编译的java类提取到java文件的选项.
这个项目有很多java类和包,所以我将长时间手动复制它.
有谁知道如何提取到java源文件.谢谢



1> yan..:

截至2017年8月和IntelliJ V2017.2,接受的答案似乎不再完全准确:没有fernflower.jar使用.

调用jar文件java-decompiler.jar并且不包含主清单...而是可以使用以下命令(从Mac安装):

java -cp "/Applications/IntelliJ IDEA.app/Contents/plugins/java-decompiler/lib/java-decompiler.jar" org.jetbrains.java.decompiler.main.decompiler.ConsoleDecompiler

(您将获得错误的使用命令,但它确实有效).


将此答案与接受的答案中的最高评论合并,启动使用IDEA默认使用的相同参数的命令是`java -cp"/ Applications/IntelliJ IDEA.app/Contents/plugins/java-decompiler/lib/ java-decompiler.jar"org.jetbrains.java.decompiler.main.decompiler.ConsoleDecompiler -hdc = 0 -dgs = 1 -rsy = 1 -rbr = 1 -lit = 1 -nls = 1 -mpm = 60/absolute/path/to/src1/absolute/path/to/src2/absolute/path/to/dst`
这个更简短的命令对我有用(基于这些答案和使用说明):java -cp /java-decompiler/lib/java-decompiler.jar org.jetbrains.java.decompiler.main.decompiler.ConsoleDecompiler- dgs = true <目标>

2> 小智..:

要从jar命令行使用IntelliJ Java反编译器,请按照此处提供的说明操作:https: //github.com/JetBrains/intellij-community/tree/master/plugins/java-decompiler/engine


IDEA的默认参数是`-hdc = 0 -dgs = 1 -rsy = 1 -rbr = 1 -lit = 1 -nls = 1 -mpm = 60`您可以在以下链接中看到它们[github](https:// github.com/JetBrains/intellij-community/blob/master/plugins/java-decompiler/plugin/src/org/jetbrains/java/decompiler/IdeaDecompiler.kt)
@AlexSpurling查看`/ Applications/IntelliJ IDEA.app/Contents/plugins/java-decompiler/lib/java-decompiler.jar`.它被重命名.
有谁知道在IntelliJ IDEA安装中哪里可以找到fernflower.jar?我在我的mac上搜索了`/ Applications/IntelliJ IDEA CE.app/Contents`但找不到它.

3> naXa..:

按照IntelliJ JD插件的说明进行操作.或者查看以下说明中的摘录.

java -jar fernflower.jar []+ 

+表示1次或多次
:包含要反编译的文件的文件或目录.目录以递归方式扫描.允许的文件扩展名是class,zip和jar.
:目标目录

例:

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而不是.java.类文件(它不会爆炸jar).


UPDATE

人们问我:我怎么得到fernflower.jar?

如果您安装了任何IntelliJ产品,很可能您已经在计算机上安装了Fernflower反编译器.IntelliJ IDEA附带Java Bytecode Decompiler插件(捆绑),这是Fernflower的现代扩展.

    ${IntelliJ_INSTALL_DIR}\plugins\java-decompiler\lib\java-decompiler.jar(例如:C:\ Program Files\JetBrains\IntelliJ IDEA 2018\plugins\java-decompiler\lib)中找到该文件.

    将其复制到某处并重命名为fernflower.jar(可选).

    此JAR不可执行,因此我们无法使用它java -jar.但是这样的工作:

    java -cp fernflower.jar org.jetbrains.java.decompiler.main.decompiler.ConsoleDecompiler []+ 
    

    org.jetbrains.java.decompiler.main.decompiler.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上提供)制作您自己的反编译器可执行文件.


我如何获得fernflower.jar?
推荐阅读
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • 如何用UE4制作2D游戏文档——计算篇
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了如何用UE4制作2D游戏文档——计算篇相关的知识,希望对你有一定的参考价值。 ... [详细]
  • Google Play推出全新的应用内评价API,帮助开发者获取更多优质用户反馈。用户每天在Google Play上发表数百万条评论,这有助于开发者了解用户喜好和改进需求。开发者可以选择在适当的时间请求用户撰写评论,以获得全面而有用的反馈。全新应用内评价功能让用户无需返回应用详情页面即可发表评论,提升用户体验。 ... [详细]
  • 闭包一直是Java社区中争论不断的话题,很多语言都支持闭包这个语言特性,闭包定义了一个依赖于外部环境的自由变量的函数,这个函数能够访问外部环境的变量。本文以JavaScript的一个闭包为例,介绍了闭包的定义和特性。 ... [详细]
  • flowable工作流 流程变量_信也科技工作流平台的技术实践
    1背景随着公司业务发展及内部业务流程诉求的增长,目前信息化系统不能够很好满足期望,主要体现如下:目前OA流程引擎无法满足企业特定业务流程需求,且移动端体 ... [详细]
  • Java学习笔记之面向对象编程(OOP)
    本文介绍了Java学习笔记中的面向对象编程(OOP)内容,包括OOP的三大特性(封装、继承、多态)和五大原则(单一职责原则、开放封闭原则、里式替换原则、依赖倒置原则)。通过学习OOP,可以提高代码复用性、拓展性和安全性。 ... [详细]
  • 深度学习中的Vision Transformer (ViT)详解
    本文详细介绍了深度学习中的Vision Transformer (ViT)方法。首先介绍了相关工作和ViT的基本原理,包括图像块嵌入、可学习的嵌入、位置嵌入和Transformer编码器等。接着讨论了ViT的张量维度变化、归纳偏置与混合架构、微调及更高分辨率等方面。最后给出了实验结果和相关代码的链接。本文的研究表明,对于CV任务,直接应用纯Transformer架构于图像块序列是可行的,无需依赖于卷积网络。 ... [详细]
  • 本文讨论了在VMWARE5.1的虚拟服务器Windows Server 2008R2上安装oracle 10g客户端时出现的问题,并提供了解决方法。错误日志显示了异常访问违例,通过分析日志中的问题帧,找到了解决问题的线索。文章详细介绍了解决方法,帮助读者顺利安装oracle 10g客户端。 ... [详细]
  • 使用eclipse创建一个Java项目的步骤
    本文介绍了使用eclipse创建一个Java项目的步骤,包括启动eclipse、选择New Project命令、在对话框中输入项目名称等。同时还介绍了Java Settings对话框中的一些选项,以及如何修改Java程序的输出目录。 ... [详细]
  • 本文讨论了在shiro java配置中加入Shiro listener后启动失败的问题。作者引入了一系列jar包,并在web.xml中配置了相关内容,但启动后却无法正常运行。文章提供了具体引入的jar包和web.xml的配置内容,并指出可能的错误原因。该问题可能与jar包版本不兼容、web.xml配置错误等有关。 ... [详细]
  • 关键词:Golang, Cookie, 跟踪位置, net/http/cookiejar, package main, golang.org/x/net/publicsuffix, io/ioutil, log, net/http, net/http/cookiejar ... [详细]
  • Java验证码——kaptcha的使用配置及样式
    本文介绍了如何使用kaptcha库来实现Java验证码的配置和样式设置,包括pom.xml的依赖配置和web.xml中servlet的配置。 ... [详细]
  • 2016 linux发行版排行_灵越7590 安装 linux (manjarognome)
    RT之前做了一次灵越7590黑苹果炒作业的文章,希望能够分享给更多不想折腾的人。kawauso:教你如何给灵越7590黑苹果抄作业​zhuanlan.z ... [详细]
  • 开发笔记:spring boot项目打成war包部署到服务器的步骤与注意事项
    本文介绍了将spring boot项目打成war包并部署到服务器的步骤与注意事项。通过本文的学习,读者可以了解到如何将spring boot项目打包成war包,并成功地部署到服务器上。 ... [详细]
  • Spring框架《一》简介
    Spring框架《一》1.Spring概述1.1简介1.2Spring模板二、IOC容器和Bean1.IOC和DI简介2.三种通过类型获取bean3.给bean的属性赋值3.1依赖 ... [详细]
author-avatar
warcraft04
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有