IDEA反编译出整个jar包源码

一、保证您的idea配置有如下插件Java Bytecode Decomplier

File–>Settings–>Plugins,在搜索框内搜出后勾选,并应用。

二、在您需要编译的jar包的目录下,打开命令行界面,输入以下命令:

E:\lib>java -cp “D:\ideaIU-2017.1.1\plugins\java-decompiler\lib\java-decompiler.jar” org.jetbrains.java.decompiler.main.decompiler.ConsoleDecompiler -dgs=true com.prosysopc.ua-2.2.0.jar mysrc

等指令运行完毕之后,会在您所制定的目录(示例是mysrc)中生成的打包好的源码,一般是jar格式的压缩文件。您可以进行解压查看。

三、底层是使用fernflower实现的:

https://github.com/fesh0r/fernflower有兴趣的朋友,可以到github上查看查阅源码。

到此这篇关于IDEA反编译出整个jar包源码的文章就介绍到这了,更多相关IDEA反编译jar包内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • java如何反编译jar包并修改class文件重新打包

    目录 反编译jar包并修改class文件重新打包 解决思路 jar包反编译后修改源码再编译 1.场景 2.详细步骤 反编译jar包并修改class文件重新打包 这两天碰到一个需求:需要修改一个jar包中的逻辑代码,并且重新打包 本来是很简单的问题,但是因为这个jar包不是可执行的jar包(没有main方法入口),jar反编译之后又是不能通过idea重新打包,因为jar是混乱的 所以费了点时间,在此记录下 解决思路 反编译jar包 首先用一些反编译工具类似 jad-gui 之类的 ,将项目反编译成

  • 反编译jar实现的三种方式

    目录 工具准备 三种方式 1.使用fernflower反编译之后再编译 2.使用javassist动态修改class 3.通过引入原来的jar包,修改代码(推荐) 总结 工具准备 相同大版本的jdk idea fernflower.jar javassist.jar 或 本地下载地址 jd-gui 或 本地下载地址 三种方式 1.使用fernflower反编译之后再编译 把要反编译的.jar修改成.zip java -jar fernflower.jar classes.zip zzCode/

  • 2020年支持java8的Java反编译工具汇总(推荐)

    大多商业软件,会对程序进行加密.加壳等安全措施以防范软件被破解,从而使得反编译越来越难.反编译是一个对目标可执行程序进行逆向分析,从而得到源代码的过程.尤其是像Java这样的运行在虚拟机上的编程语言,更容易进行反编译得到源代码. 我们知道,在代码支撑方面,JDK 1.7引入了字符串Switch.泛型接口改进等新功能,1.8增加了lambda表达式.方法传递.多重注解等新特性,这使得反编译工具的编写难度加大.今天我们盘点一下目前仍然可用的.相对功能很强大的Java反编译工具(Eclipse插件不做

  • IDEA反编译出整个jar包源码

    一.保证您的idea配置有如下插件Java Bytecode Decomplier: File–>Settings–>Plugins,在搜索框内搜出后勾选,并应用. 二.在您需要编译的jar包的目录下,打开命令行界面,输入以下命令: E:\lib>java -cp "D:\ideaIU-2017.1.1\plugins\java-decompiler\lib\java-decompiler.jar" org.jetbrains.java.decompiler.main

  • 在Android源码中编译出指定jar包的操作

    今天想把android源码/vendor/letv/frameworks/base/java下的源码编译成 framework-letv.jar供乐乐语音客户端使用,编译完后,发现jar包文件虽然生成了,但包里面并没有相关的源码class文件,无法正常使用. 经过请教加研究发现,Android.mk文件需要添加选项如下: 54 LOCAL_JACK_ENABLED := disabled # important! 55 #include $(BUILD_JAVA_LIBRARY) 56 incl

  • 仿iPhone风格对话框(附件包含例子/jar包/jar包源码)

    效果图: 这个对框完全继承.仿照AlertDialog,只是实现了自定义效果.另外,没有实现setIcon,因为iphone中的对话框多数都没有图标. 附件包含例子.jar包.jar包源码.文件简介: aIphoneDialogTest.rar 这是示例工程 使用时注意先要在build path中导入iPhoneDialogLib.rar中的jar包 iPhoneDialogLib.rar 这是控件jar包及资源文件 使用时先备份自己的strings.xml,然后将三个目录下的资源文件复制到项目

  • 修改及反编译可运行Jar包实现过程详解

    将可运行Jar包,反编译成项目,修改代码,再次编译,打包. 需要工具:jd-gui.myeclipse 具体步骤: 1.使用jd-gui打开原始的Jar包,选择File-->Save All Sources,会生成一个zip压缩包 2.解压这个压缩包,生成一个文件夹,可以看到文件夹里所有的class文件变成了java源码文件.(如果最开始直接解压原始的Jar包,那么解压出来的就是class文件,而不是java源文件) 3.打开myeclipse,新建一个普通的Project项目,将解压后的内容拷

  • maven中下载jar包源码和javadoc的命令介绍

    1:Maven命令下载源码和javadocs 当在IDE中使用Maven时如果想要看引用的jar包中类的源码和javadoc需要通过maven命令下载这些源码,然后再进行引入,通过mvn命令能够容易的达到这个目的: 复制代码 代码如下: mvn dependency:sources mvn dependency:resolve -Dclassifier=javadoc 命令使用方法:首先进入到相应的pom.xml目录中,然后执行以上命令: 第一个命令是尝试下载在pom.xml中依赖的文件的源代码

  • 对Go语言中的context包源码分析

    目录 一.包说明分析 二.包结构分析 三.Context接口类型分析 四.后续分析规划 五.基于实现类型到常用函数 六.With-系列函数 七.扩展功能以及如何扩展 八.补充 一.包说明分析 context包:这个包分析的是1.15 context包定义了一个Context类型(接口类型),通过这个Context接口类型, 就可以跨api边界/跨进程传递一些deadline/cancel信号/request-scoped值. 发给server的请求中需要包含Context,server需要接收C

  • Jquery插件之Fancybox丰富的弹出层效果附源码下载

    Fancybox是一款优秀的jquery插件,它能够展示丰富的弹出层效果.前面我们有文章介绍了facybox弹出层效果,相比facybox,fancybox显得功能更为齐全,它除了可以加载DIV,图片.图片集.Ajax数据,还能加载SWF影片,iframe页面等等. 效果演示    源码下载 fancybox 特点: 可以支持图片.html 文本.flash 动画.iframe 以及 ajax 的支持: 可以自定义播放器的 css 样式: 可以以组的形式进行播放: 如果将鼠标滚动插件(mouse

  • Node获取pnpm安装的包源码及代码路径操作

    目录 前言 举个研发例子 问题聚焦 姿势 demo 前言 在改造老工程的包依赖管理的时候,有时候我们想引入一些社区比较好用的包管理:有时候一些阻塞点会阻拦我们,特别我们构建流程可能会拷贝node_modules包源码的行为: 举个研发例子 不同公司的CLI因为面对的业务场景和构建场景不一样,有些时候,我们会做一些差异化的特性,比如工程前端CLI有暴露代码映射拷贝行为,就是打包的时候会把node_modules下的某些包的资源拷贝到特定路径,用于后续其他处理 // 本地调试 editor 时需要打

  • 如何编译下载的易语言源码

    很多刚刚接触易语言的网友不知道怎么使用易语言源码,其实易语言的源码也不过是一个加密的文本,里面只有易语言代码,要想使用需要使用易语言打开并编译为exe文件才能使用 1.易语言的源码是以 .e 为后缀的文件,如果下载后的源码是这样的就说明你电脑上已经安装了易语言程序:如果是未知格式就说明电脑没有安装易语言,需要先安装易语言 1.登录易语言官网后,可以点击下载进入易语言下载页面 2.下载并安装易语言 1.安装完易语言后可以双击源码打开 2.也可以用右键点击选择打开方式,再选择使用易语言打开 1.如果

  • Andorid jar库源码Bolts原理解析

    Bolts: 作用: 用于链式执行跨线程代码,且传递数据 栗子: 复制代码 Task.call(new Callable<Boolean>() { @Override public Boolean call() throws Exception { return true; } }, Task.UI_THREAD_EXECUTOR); Task.callInBackground(new Callable<Boolean>() { @Override public Boolean c

随机推荐