解码Java类文件



是否可以在另一个程序中对java .class文件进行反复编译?我知道Cavaj和DJ Java分解器等工具。为什么?:我正在修改程序中的类文件并将其转储到相同的情况下。然后,我想解析修改后的类文件的源文件。预先感谢。

这是一个可能的答案(这是我用于编译源文件的内容)

private int runProcess(String command) throws Exception
{
    Process pro = Runtime.getRuntime().exec(command);
    System.out.println(command);
    printLines("", pro.getInputStream());
    printLines("",pro.getErrorStream());
    pro.waitFor();
    return(pro.exitValue());
}

然后您可以使用以下内容:

int exitValue = runProcess(your command here);

我猜JD-GUI不会起作用;您需要一个命令行Java分解器。

这些链接可能帮助:
使用JD-GUI的Java文件批处理分解
http://en.wikipedia.org/wiki/jad_(java_decompiler)
http://viralpatel.net/blogs/decompile-class-file-java-decompiler-class-java-class/

最后一个链接具有下载链接到JAD,Jad是Windows计算机的命令行工具。

根据OS的不同,命令可能会有所不同,但如果您将JAD移至CMD类路径,则可能只是" JAD ClassName.class"。我有Mac OS X,所以我不确定它的位置。

我希望这会有所帮助!

如果您想在运行时修改类,则可能不需要将类反编译。您可以操纵字节码。看看http://cglib.sourceforge.net/,也许会帮助您

java IDE可以很好地编码类文件。尝试以Intellij为例,甚至是社区版。它无法更新(仅读取模式),但我希望它可以帮助

最新更新