使用java库将.class文件反编译为.java源代码
我正在从事需要将.class文件反编译为源代码的java项目,我发现了许多方法,例如JAD反编译器和“javap-p”方法,但是我认为这些方法是不能通过编程实现的(如果可以的话,请告诉我),是否有任何方法可以通过编程实现,如果您能给我看一些库,我将不胜感激。是一个用Java编写的Java反编译程序,可以直接从Java代码调用它。例如:使用java库将.class文件反编译为.java源代码,java,class,decompiler,jad,Java,Class,Decompiler,Jad,我正在从事需要将.class文件反编译为源代码的java项目,我发现了许多方法,例如JAD反编译器和“javap-p”方法,但是我认为这些方法是不能通过编程实现的(如果可以的话,请告诉我),是否有任何方法可以通过编程实现,如果您能给我看一些库,我将不胜感激。是一个用Java编写的Java反编译程序,可以直接从Java代码调用它。例如: final PrintWriter writer = new PrintWriter(System.out); try { com.strobel.de
final PrintWriter writer = new PrintWriter(System.out);
try {
com.strobel.decompiler.Decompiler.decompile(
"W:\\Hello.class",
new com.strobel.decompiler.PlainTextOutput(writer)
);
}
finally {
writer.flush();
}
还有一个
decompile()
重载,它接受decompilesettings
实例,您可以使用该实例切换某些功能,并向反编译器提示如何解析类依赖关系。如果有任何问题,请随时通过BitBucket与我联系。关于@SachinVerma,您提供的链接有点帮助,但我没有找到答案,这就是我没有把它放进去的原因answer@SachinVerma没关系,事实上我对stackoverflow还不熟悉,我不知道这里的规章制度,不管怎样,谢谢:)实际上我需要在控制台中打印.java文件,我必须使用什么方法,您有Proycon的文档吗?上面的示例将输出打印到控制台。如果要打印到其他源,只需在创建明文输出时传递另一种编写器
。我目前没有任何文档,但我可以回答您可能提出的任何问题。抱歉没有测试我自己的答案。问题似乎是写入程序的缓冲区没有自动刷新。