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

使用Proycon将.class文件反编译为.java文件,java,class,converter,Java,Class,Converter,我有一个将.class文件转换为.java文件的项目,在研究过程中,我发现Proycon是一个java库,可以帮助实现这一点。不幸的是,我找不到任何适合Proycon的文档。任何有使用经验的人,如果有,请告诉我将.class转换为.java文件并将其打印到控制台时必须使用哪种方法?JD core java是JD core的薄包装。自述文件显示了如何在项目中使用它 /* Returns the source of SomeClass from compiled.jar as a String */

我有一个将
.class
文件转换为
.java
文件的项目,在研究过程中,我发现Proycon是一个java库,可以帮助实现这一点。不幸的是,我找不到任何适合Proycon的文档。任何有使用经验的人,如果有,请告诉我将.class转换为.java文件并将其打印到控制台时必须使用哪种方法?

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");
/*以字符串形式返回compiled.jar中SomeClass的源代码*/
新的jd.core.Decompiler.decompile(“compiled.jar”、“com/namespace/SomeClass.class”);
/*
*将compiled.jar中所有类的源作为映射返回
*其中,键是类名(完整路径),值是源
*/
新的jd.core.Decompiler.decompile(“compiled.jar”);
/*
*返回反编译并保存到out_dir中的类数
*/
新的jd.core.Decompiler.decompileToDir(“compiled.jar”、“out_dir”);
下载以将.class文件转换为.java
我使用过这个反编译器,我认为它是最好的

我使用的是它的Bitbucket中的
procyon-Decompiler-0.5.30.jar

如果需要反编译一个或多个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

这还不够吗?@JasonC我想我的谷歌找不到链接,你有链接吗?点击我评论中的链接。。。这也是“procyon decompiler”的第一个Google结果。@JasonC我已经读过了,但它没有向任何使用procyon的人描述反编译方法,如果您有任何问题,请随时直接与我联系。我可以通过BitBucket直接消息、Twitter或电子邮件联系到我。我的联系信息在Procyon BitBucket页面上。我还定期检查StackOverflow上的
反编译器
反编译
标记。我实现了此方法,它捕获了一个异常“java.lang.UnsatifiedLinkError:无法加载库”,这是由于缺少库。请参阅以下链接作为故障排除指南。问题是给定的github源代码是linux包装器,我在windows中工作,您有windows包装器吗?@ShajeerAhmd yes Ihave@Engineer你能寄到吗info4shajeer@gmail.com@是的,为什么not@Engineer谢谢大家!@ShajeerAhmd检查你的电子邮件我已经发送给你了