How can I decompile many jars at once?

2020-06-18 02:51发布

Well, I guess subject says it all :)

The ideal solution would find all jars within a certain folder (they might be in sub-folders), and write all the sources found into a single "src" directory, of course maintaing the package folders.

Concrete use case: decompile all Eclipse plugin jars

5条回答
该账号已被封号
2楼-- · 2020-06-18 03:20

The Windows equivalent command for this would be:

jad -o -r -sjava -d "target.dir" "unjar.dir/**/*.class"
查看更多
放荡不羁爱自由
3楼-- · 2020-06-18 03:27

I wrote a tool names code-collection using shell script and cfr to find and decompile all jar, war files at once.

After decompiling jar, war files, you could use my tool to find and copy all specific files (.js, .html for example) to a new directory.

enter image description here

Visit my project at: code-collection

查看更多
劳资没心,怎么记你
4楼-- · 2020-06-18 03:29

Decompile eclipse plugins??

Apart from the existence of a technical solution - (1) you can get all source files for the (official) eclipse plugins as bundles and (2) don't expect that the decompiler results will compile or can be used to debug the code.

So if you want to study the source of eclipse and it's plugins, decompiling is .. say .. not the best idea.

查看更多
Ridiculous、
6楼-- · 2020-06-18 03:31

Download JAD Decompiler.

  • Unjar all your jar files (using the command jar xvf) to some directory. Let's call this ${unjar.dir}.

  • Create a directory for JAD to write out the decompiled sources. Let's call this ${target.dir}.

  • Execute the following command:

    jad -o -r -sjava -d${target.dir} ${unjar.dir}/**/*.class

options are:

-o       - overwrite output files without confirmation
-r       - restore package directory structure
-s <ext> - output file extension (default: .jad)
查看更多
登录 后发表回答