反编译工具的话在实际工作中还是经常使用的:比如查看一个开源框架的源码,查看线上部署的 jar 包和 war 包是否包含某些代码等等。之前一直使用的是 JD-GUI ,但是有的使用该工具无法反编译某些类,这就很尴尬了。
当使用 IDEA
进行 Debug
时,是可以看到某个依赖的源码。那么如果将某个依赖的 jar
包 或者是 war
包当做本地依赖处理,IDEA 是不是也能查看其源码?说干就干。
1. 随便建立一个 Maven 项目,然后将本地的依赖包添加入项目中。
2. 在 pom.xml
文件中引入本地需要反编译的 jar
或者是 war
文件(比如查看 mysql-connector-java-5.1.35.jar
)。
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.example</groupId>
<artifactId>CompileJava</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>cn.havemail</groupId>
<artifactId>test</artifactId>
<scope>system</scope>
<version>1.0</version>
<!-- 上面几个随便写,下面的路径对就行 -->
<systemPath>/Users/roc/Downloads/mysql-connector-java-5.1.35.jar</systemPath>
</dependency>
</dependencies>
</project>
3. 文件中直接点击右键 -> Maven -> Reload project
(或者点击右上角的加载图标),然后左侧就能看到这个已经被加载的依赖。
大功告成!!!