美文网首页
java jar包反编译

java jar包反编译

作者: _火山_ | 来源:发表于2021-10-30 20:51 被阅读0次

什么是编译?

对java来说,编译就是把一个.java文件变成一个.class字节码文件的过程;
.java文件是人类易读的,而.class文件是二进制的,人们难以读懂,有时候没有源码文件的话可能需要对jar包进行反编译,把jar包中的.class文件变为.java文件,开发者才好读懂代码逻辑,所以反编译是将.class文件变为.java的过程。

如何反编译?

我们现在的java开发者使用的开发工具一般都是idea了,借助idea的插件可以方便的反编译jar包。

1、首先我们先检查下idea是否已经默认安装了反编译插件java-decompiler.jar了,这个插件一般是idea默认捆绑带上的。

通过File->settings->Plugins查看,在搜索框搜索byte,会出现如下两个插件,其中:
bytecode viewer顾名思义是用于查看字节码文件的;
而java bytecode decompiler则是用于对字节码文件反编译的。

可以看到这两个插件下都有一个标识bundled,说明它们是与idea捆绑的,即安装了idea后默认安装了它们。

而java-decompiler.jar这个插件的安装路径为:
./IntelliJ_IDEA_Community_Edition_2020.2.4/plugins/java-decompiler/lib/java-decompiler.jar

2、反编译情况
1)通过idea操作
默认我们通过idea点开一个.class文件,看到的不是二进制信息,而是可读的代码,这是因为idea默认自动做了反编译。

那我们通过这种方式如何反编译查看一个jar包呢?
a)在idea中新建一个目录,把要反编译的jar包拷贝到这个目录下,然后选择这个jar包右键,选择Add as Library,可以把这个jar包文件添加到当前项目、解压展开且idea自动给反编译成.java文件了,里面可以看到这个jar包所有基于.class文件反编译后的java代码。

2)通过java-decompiler.jar手动执行命令反编译整个jar包
这种方式可以不需要先把jar包加到idea,可以独立于idea之外被反编译

1、确定反编译jar包位置
/d/java/jdk/lib/tools.jar

2、确定反编译后文件的输出位置,注意输出目录必须得事先存在,反编译过程不会自动创建,如果不存在就会报错目标目录不存在
/d/test/

3、执行命令进行反编译
java -cp "./java-decompiler.jar" org.jetbrains.java.decompiler.main.decompiler.ConsoleDecompiler -dgs=true /d/java/jdk/lib/tools.jar /d/test/

引号里的就是反编译插件jar包,后面跟的是jar包执行主类,最后的是需要反编译的jar包以及输出目录
没有指定输出路径报错

将反编译后的解压文件用idea打开查看

参考:https://www.cnblogs.com/Andya/p/13714328.html

相关文章

  • java jar包反编译

    什么是编译? 对java来说,编译就是把一个.java文件变成一个.class字节码文件的过程;.java文件是人...

  • android 动态调试

    反编译以及打包 apk 工具网盘地址 反编译 :java -jar Apktool.jar d 22.apk 修改...

  • 反编译

    编译: 1、java -> jar 2、jar -> dex 反编译: 1、解包 apk 文件 2、dex -> ...

  • apk反编译

    方法1. 用apktool反编译 >> java -jar apktool_2.4.0.jar d -f my....

  • IDEA反编译.md

    调用IDEA反编译整个Jar包 IDEA的反编译插件https://github.com/JetBrains/in...

  • Linux下启动Java服务

    Linux下启动Java服务 jar包启动 直接启动jar包 java -jar XXX.jar缺点:当前ssh窗...

  • java 执行jar包的两种方式

    java 执行jar包的两种方式 可执行jar java -jar xxx.jar 通常jar java -cp...

  • Android apk反编译及重新打包流程

    一、反编译代码 1、反编译java代码首先需要下载dex2jar这个工具,下载地址:https://sourcef...

  • 反编译详解

    Android 反编译 1. Apk反编译得到Java源代码 使用dex2jar.bat,jd-gui.exe 具...

  • 无标题文章

    jar没有开放源码,用反编译工具来查 jar文件解压----->用反编译工具打开jar文件解压----->用反编译...

网友评论

      本文标题:java jar包反编译

      本文链接:https://www.haomeiwen.com/subject/vjxnaltx.html