Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/402.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用java库将.class文件反编译为.java源代码_Java_Class_Decompiler_Jad - Fatal编程技术网

使用java库将.class文件反编译为.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

我正在从事需要将.class文件反编译为源代码的java项目,我发现了许多方法,例如JAD反编译器和“javap-p”方法,但是我认为这些方法是不能通过编程实现的(如果可以的话,请告诉我),是否有任何方法可以通过编程实现,如果您能给我看一些库,我将不胜感激。

是一个用Java编写的Java反编译程序,可以直接从Java代码调用它。例如:

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的文档吗?上面的示例将输出打印到控制台。如果要打印到其他源,只需在创建
明文输出时传递另一种
编写器
。我目前没有任何文档,但我可以回答您可能提出的任何问题。抱歉没有测试我自己的答案。问题似乎是写入程序的缓冲区没有自动刷新。