.class Files "disassemblieren" ?

zeromancer

Erfahrenes Mitglied
Moins!

Blöde Frage, aber vielleicht eine schnelle und treffsichere Antwort Eurerseits:
Wie und womit (und ob überhaupt...) kann man .class-Files wieder in Source-Code umwandeln?

Ich habe dummerweise meine Sourcen verloren und nur noch die fertigen Class-Dateien übrig - nun müsste ich hier und da etwas ändern.

Hab ich irgendeine Chance?

Danke für Tipps!
 
Original geschrieben von zeromancer
Moins!

Blöde Frage, aber vielleicht eine schnelle und treffsichere Antwort Eurerseits:
Wie und womit (und ob überhaupt...) kann man .class-Files wieder in Source-Code umwandeln?

Ich habe dummerweise meine Sourcen verloren und nur noch die fertigen Class-Dateien übrig - nun müsste ich hier und da etwas ändern.

Hab ich irgendeine Chance?

Danke für Tipps!

Ich benutze den DJ Decompiler.
 
Danke Leute, DJ ist ne Wucht :)

So ist das immer, wenn man tolle Suchmaschinenn hat, aber die Suche nicht passend formuliert (Java Disassembler != Java Decompiler :rolleyes: )
 
Hallo!

Wenn du .class Dateien Disassemblieren willst, also den Bytecode anschauen willst musst du nur das kleine Utility

javap mit -c und dem Klassennamen als Parameter aufrufen.
javap ist bei jedem Java SDK dabei.

aus:
Code:
/*
 * Created on 22.05.2004
 */

/**
 * @author Administrator
 */
public class Hallo {

	public static void main(String[] args) {
		System.out.println("Hallo Welt");
	}
}

wird nach einem

javap -c Hallo

folgendes:

Code:
E:\eclipse3.0M9\workspace\TestProject>javap -c Hallo
Compiled from "Hallo.java"
public class Hallo extends java.lang.Object{
public Hallo();
  Code:
   0:   aload_0
   1:   invokespecial   #9; //Method java/lang/Object."<init>": ()V
   4:   return

public static void main(java.lang.String[]);
  Code:
   0:   getstatic       #21; //Field java/lang/System.out:Ljava/io/PrintStream;
   3:   ldc     #23; //String Hallo Welt
   5:   invokevirtual   #29; //Method java/io/PrintStream.println: (Ljava/lang/String; )V
   8:   return

}

Gruß Tom
 
Zurück