Como posso abrir Java?arquivos de classe de uma forma legível?
- ambiente = = Windows W/ VS 2008 instalado.
17 answers
Jd-gui é o melhor decompilador de momento. ele pode lidar com recursos mais recentes em Java, em comparação com o Jad getting-dusty.
Se não te importas de ler bytecode, o javap deve funcionar bem. Faz parte da instalação padrão do JDK.
Usage: javap <options> <classes>...
where options include:
-c Disassemble the code
-classpath <pathlist> Specify where to find user class files
-extdirs <dirs> Override location of installed extensions
-help Print this usage message
-J<flag> Pass <flag> directly to the runtime system
-l Print line number and local variable tables
-public Show only public classes and members
-protected Show protected/public classes and members
-package Show package/protected/public classes
and members (default)
-private Show all classes and members
-s Print internal type signatures
-bootclasspath <pathlist> Override location of class files loaded
by the bootstrap class loader
-verbose Print stack size, number of locals and args for methods
If verifying, print reasons for failure
Se quiser um descompilador java, poderá usar a ferramenta da linha de comandos javap
para fazer isto. Além disso, Java Descompiler HOW-TO descreve como você pode descompilar um arquivo de classe.
Usar Jad para descompilar é provavelmente a tua melhor opção. A menos que o código tenha sido ofuscado, vai produzir um bom resultado.
Cpuguru, se a sua 'applet' foi compilada com o javac 1.3 (ou menos), a sua melhor opção é usar o Jad.
Infelizmente, o último JDK apoiado por Jad 1.5.8 (14 de Abril de 2001) é JDK 1.3.Se o seu applet foi compilado com um compilador mais recente, você poderia tentar JD-GUI : este descompilador está em desenvolvimento, no entanto, ele gera fontes Java corretas, na maioria das vezes, para classes compiladas com o JDKs 1.4, 1.5 ou 1.6.
DarenW, obrigado pela tua ajuda. postar. O JD-GUI ainda não é o melhor decompilador ... mas estou a trabalhar em:)'plugin' de Eclipse do JAD e/ou do JADclipse, com certeza.
Se o ficheiro de classe que deseja ver for de código aberto, não o deve descompilar, mas sim anexar os ficheiros de código directamente ao seu IDE. dessa forma, você pode apenas ver o código de alguma classe de biblioteca como se fosse o seu próprio
Jd-gui http://code.google.com/p/innlab/downloads/detail?name=jd-gui-0.3.3.windows.zip&can=2&q = " é a melhor e mais amigável opção para descompilação .ficheiro da turma....
Como sugerido você pode usar JAD para descompilar e ver os arquivos. Para facilitar a leitura, pode usar o 'plugin' JADclipse para o eclipse para integrar o JAD directamente ao eclipse ou usar o DJ Java Descompiler, que é muito mais fácil de usar do que a linha de comandos JAD
O JAD é uma excelente opção se quiser um código Java legível como resultado. Se você realmente quiser investigar os internos do formato de Arquivo .class
, você vai querer javap
. Está junto com o JDK e permite "descompilar" o bytecode hexadecimal em ASCII legível. A linguagem que produz ainda é bytecode (nada como Java), mas é razoavelmente legível e extremamente instrutiva.
Também, se você realmente quiser, você pode abrir qualquer arquivo {[[[0]} em um editor hex e ler o bytecode diretamente. O resultado é idêntico ao de javap
.
CFR-another java decompiler is a great decompiler for modern Java written i Java 6.
javap -c <name of java class file>
Para obter o código de montagem da JVM. Você também pode redirecionar a saída para um arquivo de texto para uma melhor visibilidade.
javap -c <name of java class file> > decompiled.txt
Você também pode usar os descompiladores java online disponíveis. Por exemplo http://www.javadecompilers.com