使用Proycon将.class文件反编译为.java文件

时间:2014-03-05 06:06:55

标签: java class converter

我有一个将.class文件转换为.java文件的项目,在研究期间我发现 Proycon 是一个有助于执行此操作的java库。很遗憾,我找不到任何适合Proycon的文档。任何有使用此经验的人,如果是,请告诉我使用哪种方法将.class转换为.java文件并将其打印到控制台?

3 个答案:

答案 0 :(得分:1)

JD-core-java https://github.com/nviennot/jd-core-java是jd-core的瘦包装器。自述文件显示了如何在项目中使用它。

/* Returns the source of SomeClass from compiled.jar as a String */
new jd.core.Decompiler.decompile("compiled.jar", "com/namespace/SomeClass.class");

/*
 * Returns the sources of all the classes in compiled.jar as a Map<String, String>
 * where the key is the class name (full path) and the value is the source
 */
new jd.core.Decompiler.decompile("compiled.jar");

/*
 * Returns the number of classes decompiled and saved into out_dir
 */
new jd.core.Decompiler.decompileToDir("compiled.jar", "out_dir");

答案 1 :(得分:0)

下载Java Decompiler(JD)以将.cl​​ass文件转换为.java 我使用过这个反编译器,在我看来是最好的

答案 2 :(得分:0)

我正在使用其Bitbucket repo中的procyon-decompiler-0.5.30.jar

如果您需要反编译一个或多个罐子,请将它们复制到一个文件夹然后运行:

%JAVA_HOME%\bin\java -jar c:\procyon\procyon-decompiler-0.5.30.jar -o . *.jar

在上面的命令中,我指定了procyon jar的完整路径,-o .将输出设置为当前文件夹。

假设我想检查sentry-logback-1.5.4.jar,运行上述命令后,我将以具有以下结构的工作文件夹结束:

sentry-logback-1.5.4.jar
[io]
  `-- [sentry]
          `-- [logback]
                 `-- SentryAppender.java