使用jd-cmd API反编译.jar文件

时间:2015-05-12 11:56:04

标签: java decompiling jd-cmd

所以我在寻找一个命令行工具来解码.jar文件,我找到了这个" jd-cmd"在https://github.com/kwart/jd-cmd,它工作得很好,但现在我看到它有一个我可以使用的api,我似乎无法以正确的方式做到这一点。

我正在努力intellij IDE,将外部jar添加到我的项目中,我想要的只是输出将在我在文件系统中选择的文件夹中,就像它在命令行中工作一样没有问题。

这是我从没有做过这个工作的想法中尝试的一个示例代码:

import java.io.File;
import jd.core.input.JDInput;
import jd.core.input.ZipFileInput;
import jd.core.output.DirOutput;
import jd.core.output.JDOutput;
import jd.ide.intellij.JavaDecompiler;

public class App {
    public static void main(String[] args) {
        JavaDecompiler javaDecompiler = new JavaDecompiler();
        //choose input plugin for your decompiled file (class, zip, directory)
        JDInput jdIn = new ZipFileInput("path/to/myFavorityLib.jar");
        //choose output plugin (zip, directory, console)
        JDOutput jdOut = new DirOutput(new File("/tmp/decompiled"));
        //decompile
        jdIn.decompile(javaDecompiler, jdOut);
    }
}

此代码未在" / tmp /反编译"

生成反编译文件

1 个答案:

答案 0 :(得分:0)

好的,所以我设法做到了。 这是一个依赖性问题,github开发人员提到jd-lib文件夹应该作为依赖库添加,但实际上它非常重要,你需要添加一个jar文件:在完成所有指令后,下载什么样的maven会给你,在jd-cli文件夹里有一个下载的jar" jd-cli.jar" ,使用它作为项目的依赖项,它工作得很好!