Quellcode wiederherstellen

Bitte aktiviere JavaScript!
Hi :(
Ich hab durch einen dummen Fehler meinen Quellcode gelöscht.

Was noch übrig ist, ist eine .jar und eine Anwendung die ich aus dem Quellcode generiert habe.

Besteht die Möglichkeit daraus den verlorenen Code wiederherzustellen?

LG.

Greg
 
A

Anzeige




Vielleicht hilft dir unser Kurs hier weiter —> (hier klicken)
Wenn ich die Anwendung entpacke finde ich zwar meine klassen. Die aber nur als .class und nicht als .java

Ist das der richtige Weg?
 
Version Control Systeme sind absolute pflicht!
Bitte schau dir Git mal genauer an!

Du kannst die JAR decompilen und erhälst deinen Quellcode zurück, allerdings nicht in der selben Form, wie du ihn geschrieben hast.
z.B. sind Variablen dort anders benannt und alle Kommentare wurden entfernt.
 
Wobei man dazu sagen muss, dass git alleine nicht vor Verlust schützt. Dazu braucht es dann schon ein Remote-Repository.
 
Danke für dir antworten :)

Ich hab mal versucht die Anwendung zu entpacken und die Klassen (.class) zu (.java) zu formen. Hat auch alles gut geklappt. Nur fehlt das wichtigste im Code. Ist es normal das viele Teile im Code fehlen?
Und kann man irgendwie alles wiederherstellen?
Schönen Abend noch

Greg
 
Weder beim kompilieren noch beim dekompilieren geht Code verloren, höchstens hat der wie schon gesagt eine etwas andere, aber gleichwertige, Form.

Wie hast du die Klassen denn dekompiliert?
 
Das hab ich mir auch gedacht...
Der Code der fehlt sollte in der actionlistenermethode eines buttons stehen.
Decompiled hab ich es online.
Mich ärgert das, das der komplette Inhalt des Buttons fehlt...
 
Bist Du dir wirklich sicher? Also alle .class Dateien aus dem Jar musst Du dekompilieren. Hintergrund ist halt, dass Deine Implementierung wohl eine anonyme inner class sein dürfte und ich habe es jetzt nicht geprüft, aber ich würde vermuten, dass die in einer eigenen .class Datei stecken dürfte.
 
Dann nein. Alle .class habe ich nicht dekompiliert, da viele doppelt waren.
Z.b
Bearbeiten.class
Bearbeiten$1.class
Bearbeiten$2.class
Bearbeiten$3.class
Bearbeiten$4.class
...

Die die ich überprüft habe hatten nur null drinne.
Aber da sind ja auch noch andere Dateien die vorher keine Klassen waren.

Soll ich wirklich ALLE Dateien dekompilieren?
Und was mach ich dann mit den allen?
 
Ja, das sind diese anonymen inner classes.

Also in der Klasse Bearbeiten hast Du dann sowas gemacht wie:
Java:
myFrame.addMouseListener(new MouseAdapter() {
  public void mousePressed(MouseEvent me) {
    // Do something
  }
}
Damit erzeugst Du innerhalb Deiner Klasse (inner class) eine neue Klasse (ohne Namen, also anonym) welche MouseListener impementiert und welche lediglich mousePressed implementiert.
Und von dieser Klasse wird direkt eine Instanz erzeugt und als Parameter an addMouseListener übergeben.

Und bezüglich der .class dateien gilt wohl:
Die namen bilden sich aus Parent Klassenname und Inner Class Name, getrennt durch $.
Und da die inner class anonym ist, wird statt dessen ein Zähler verwendet.

Also in diesen ,class Dateien sollte der noch fehlende Code stecken.
 
Gut... o_O
Dann werde ich mich dan setzen und alle .class dekompilieren und durchforsten.
(Auch die sie ich nicht selbst benannt habe)

Melde mich wenn es vollbracht ist
 
Also ich hab jetzt mal durchgeguckt... aber irgendwie wird das nix. Ich hänge das Verzeichnis gleich mal an, falls von euch da experte ist und die zeit hat... (mir geht es ansich nur um Bearbeiten.class -> die will ich als .java)
Habe alle Bearbeiten$... .class dekompeliert -> alles "null". Aber vielleicht habt ihr mehr glück!
Vielen dank wenn es wer probiert.
Schönen Start in die Woche ;)

Greg
 

Anhänge

Mit einem Obfuskator, ob das aber sinnvoll ist, kommt auf den jeweiligen Anwendungsfall an.
 
Passende Stellenanzeigen aus deiner Region:

Oben