Class Dateien decompilieren

SchalliLP

Aktives Mitglied
Hallo Forum,

ich habe ein kleines text basierendes Spiel für die Schule in java erstellt.
Mein Problem ist, dass ich den Quellcode des als .java gespeicherten Projektes gelöscht (ich weiss auch nicht wie ich so dumm sein kann...)
Wenn ich die .class datei nun mit dem jad Decompiler decompile kommen allerdings in den Quellcode reichlich Fehler und die Anmerkungen gehen verloren.
Kann mir jemand helfen mein Projekt wieder zu bekommen?
Sonst müsste ich 10 Stunden Arbeit wiederholen...
Danke schon im Voraus.
MfG SchalliLP

Java-Datei-download für alle die es testen wollen: Dropbox - DungeonFighter - SpielAnhang anzeigen DungeonFighter.jar
 

Gucky

Top Contributor
Beim zweiten Mal wird es viel schneller gehen und du wirst ein paar Fehler oder umständliche Programmierungen nicht noch einmal machen.

Von welchem Speichermedium hast du die Dateien gelöscht?

Du musst alle Klassen dekompilieren. Wenn nicht alle dekompiliert sind, dann ist es klar, dass du Fehler bekommst.

Welcher Art sind die Fehler?

Die Anmerkungen sind nicht mehr im kompilierten Programm vorhanden (deshalb sind es "Kommentare" ;) ).
 

freddy79

Mitglied
Ist ja nur eine Klasse, und mir hat er nach dem Decompilieren auch keine Fehler angezeigt:
Code:
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Random;
import java.util.Scanner;

public class Spiel {
	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		Random rand = new Random();

		String[] enemies = { "Skelett", "Zombie", "Riesenratte", "Goblin",
				"Magier", "SchalliLP's Klon", "Riesenspinne" };
		int maxEnemyHealth = 75;
		int enemyAttakDamage = 25;
		int Score = 0;

		boolean Fail = false;

		int health = 100;
		int attakDamage = 50;
		int numHealthPotions = 3;
		int healthPotionHealAmount = 30;
		int healthPotionDropChance = 50;

		boolean running = true;
		for (int i = 0; i < 80; i++) {
			System.out.println();
		}
		System.out.println("   --------------------------------------------");
		System.out.println(" /                                          / |");
		System.out.println("--------------------------------------------  |");
		System.out.println("|     DungeonFighter V1.6.2 BETA BUILD      | /");
		System.out.println("--------------------------------------------");
		System.out.println();
		System.out.println();
		System.out.println("           Willkommen im Dungeon");
		label1288: while (running) {
			System.out.println("--------------------------------------------");

			int enemyHealth = rand.nextInt(maxEnemyHealth);
			int Scoremultiplier = enemyHealth;
			int EnemyStartHealth = enemyHealth;
			String enemy = enemies[rand.nextInt(enemies.length)];
			if (enemy == "SchalliLP's Klon") {
				Scoremultiplier = 100;
			}
			if (enemy == "SchalliLP's Klon") {
				enemyHealth = 120;
			}
			if (enemyHealth < 5) {
				enemyHealth = 5;
			}
			System.out.println("\t# " + enemy + " erscheint!#\n");
			while (enemyHealth > 0) {
				System.out.println("\tDeine HP: " + health);
				System.out.println("\t" + enemy + " HP: " + enemyHealth);
				System.out.println("\n\tWas willst du tun?");
				System.out.println("\t1. Angreifen");
				System.out.println("\t2. Heiltrank trinken");
				System.out.println("\t3. Wegrennen!");

				String input = in.nextLine();
				if (input.equals("1")) {
					int damageDealt = rand.nextInt(attakDamage);
					int damageTaken = rand.nextInt(enemyAttakDamage);
					if (enemy == "SchalliLP's Klon") {
						damageTaken = 15;
					}
					enemyHealth -= damageDealt;
					health -= damageTaken;
					for (int i = 0; i < 80; i++) {
						System.out.println();
					}
					System.out
							.println("--------------------------------------------");
					System.out.println("\t> Du triffst " + enemy
							+ " und verursachst " + damageDealt + " Schaden.");
					System.out.println("\t> Du kassierst " + damageTaken
							+ " Schaden!");
					if (health < 1) {
						for (int i = 0; i < 80; i++) {
							System.out.println();
						}
						System.out
								.println("\t> Du nahmst zu viel Schaden und bist zu geschwächt um weiterzumachen!");
						Fail = true;
						break;
					}
				} else if (input.equals("2")) {
					if (numHealthPotions > 0) {
						health += healthPotionHealAmount;
						numHealthPotions--;
						for (int i = 0; i < 80; i++) {
							System.out.println();
						}
						if (health > 100) {
							health = 100;
						}
						System.out
								.println("--------------------------------------------");
						System.out
								.println("\t Du trinkst einen heiltrank. Du hast  "
										+ healthPotionHealAmount
										+ " HP dazu bekommen."
										+ "\n\t> Du hast jetzt "
										+ health
										+ "HP."
										+ "\n\t> Du hast "
										+ numHealthPotions
										+ " Heiltränke übrig.\n");
					} else {
						for (int i = 0; i < 80; i++) {
							System.out.println();
						}
						System.out
								.println("\t Du hast keine Heiltränke mehr! Besiege Gegner um welche zu finden!\n");
						if (health > 100) {
							health = 100;
						}
					}
				} else {
					if (input.equals("3")) {
						for (int i = 0; i < 80; i++) {
							System.out.println();
						}
						System.out.println("\t Du liefst weg vor: " + enemy
								+ "!");
						if (enemy == "SchalliLP's Klon") {
							health -= 10;
						}
						if (health >= 1) {
							break label1288;
						}
						for (int i = 0; i < 80; i++) {
							System.out.println();
						}
						System.out
								.println("\t> Du nahmst zu viel Schaden und bist zu geschwächt um weiterzumachen!");
						Fail = true;
						break;
					}
					System.out.println("\tUngültieger Befehl!");
				}
			}
			if (health < 1) {
				for (int i = 0; i < 80; i++) {
					System.out.println();
				}
				System.out
						.println("Du kriechst aus dem Dungeon, geschwächt vom kampf.");
				Fail = true;
				break;
			}
			System.out.println("--------------------------------------------");
			System.out.println(" # " + enemy + " wurde besiegt! #");
			System.out.println(" # Du hast " + health + " HP übrig. #");
			Score += Scoremultiplier;
			if (EnemyStartHealth < 30) {
				if ((rand.nextInt(100) < EnemyStartHealth)
						|| (enemy == "SchalliLP's Klon")) {
					numHealthPotions++;

					System.out.println(" # " + enemy
							+ " Hat einen Heiltrank fallen gelassen! # ");
					System.out.println(" # Du hast jetzt " + numHealthPotions
							+ " Heiltrank(s). # ");
				}
			} else if (rand.nextInt(100) < healthPotionDropChance) {
				numHealthPotions++;

				System.out.println(" # " + enemy
						+ " Hat einen Heiltrank fallen gelassen! # ");
				System.out.println(" # Du hast jetzt " + numHealthPotions
						+ " Heiltrank(s). # ");
			}
			System.out.println("--------------------------------------------");
			System.out.println("Was möchtest du jetzt tun?");
			System.out.println("1. Weiter kämpfen");
			System.out.println("2. Dungeon verlassen");

			String input = in.nextLine();
			while ((!input.equals("1")) && (!input.equals("2"))) {
				System.out.println("Ungültiger Befehl!");
				input = in.nextLine();
			}
			if (input.equals("1")) {
				for (int i = 0; i < 80; i++) {
					System.out.println();
				}
				System.out.println("Du setzt dein Abenteuer fort!");
			} else if (input.equals("2")) {
				for (int i = 0; i < 80; i++) {
					System.out.println();
				}
				System.out
						.println("Du verlässt den Dungeon erfolgreich nach deinen Abenteuern!");
				break;
			}
		}
		for (int i = 0; i < 80; i++) {
			System.out.println();
		}
		if (Fail) {
			Score /= 2;
		}
		System.out.println("#######################");
		System.out.println("# DANKE FÜRS SPIELEN! #");
		System.out.println("#######################");
		System.out.println();
		System.out.println("Dein Score ist " + Score);
		System.out.println("Name: ");
		for (int i = 0; i < 9; i++) {
			System.out.println();
		}
		String input = in.nextLine();

		String name = input;
		try {
			FileWriter write = new FileWriter("text.txt", true);
			PrintWriter text = new PrintWriter(write);
			text.println(name + ":");
			text.println(Score);
			text.println();
			text.flush();
			write.close();
		} catch (IOException ioe) {
			ioe.printStackTrace();
		}
		for (int i = 0; i < 100; i++) {
			System.out.println();
		}
	}
}
 
Zuletzt bearbeitet:

SchalliLP

Aktives Mitglied
@freddy79 Danke für den Code!
Du hast mir damit wirklich sehr geholfen.
Bei mir war der Code ca so abgeändert:
Java:
System.out.println("#######################") to.String;
System.out.println("# DANKE FÜRS SPIELEN! #") to.String;
System.out.println("#######################") to.String;
Und es tauchte die variable i auf ohne definiert worden zu sein.
Kannst du mir sagen womit du es gemacht hast?
Und noch einmal: Danke, dass du mir 10 Stunden Arbeit erspart hast.

Ein bisschen off-toppic aber:
Nach einem System zurücksetzen öffnet sich Eclipse nur noch für 1 Frame... hat auch dafür jemand eine Lösung?

Edit: nach Neuinstallation von Java funktioniert eclipse wieder.
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
C "HelloWorld" - Dateien erstellt, aber ist es eine class-Datei? Java Basics - Anfänger-Themen 2
A attach source: Zusammenhang zwischen JAR und .class/.java Dateien? Java Basics - Anfänger-Themen 2
C Klassen Class Files nachladen (mehrer .jar Dateien) Java Basics - Anfänger-Themen 2
P Compiler-Fehler .java Dateien kompilieren und .class Dateien zur .jar Java Basics - Anfänger-Themen 4
N wie *.class-Dateien mit log4j loggen? Java Basics - Anfänger-Themen 9
K OOP duplicate class, öffentliche Klasse in unterschiedlichen Java Dateien speichern? Java Basics - Anfänger-Themen 3
C class Dateien einbinden Java Basics - Anfänger-Themen 22
W wie bekomme ich die .class Dateien ausgelesen Java Basics - Anfänger-Themen 11
M JApplet in HTML einbetten > mehrere .class-Dateien Java Basics - Anfänger-Themen 9
TheKing Mac-class dateien öffnen Java Basics - Anfänger-Themen 2
M dateien relativ zur lage der .class-Dateien adressieren Java Basics - Anfänger-Themen 3
C Auf ProgressBar von zwei verschiedenen .class Dateien zugrei Java Basics - Anfänger-Themen 2
M class Dateien per cmd nicht ausführbar Java Basics - Anfänger-Themen 12
G warum in *.class-Dateien loggen? Java Basics - Anfänger-Themen 13
T class dateien in projekt einfuegen Java Basics - Anfänger-Themen 8
J ".java" und ".class"-Dateien ;-) Java Basics - Anfänger-Themen 6
A Class-Dateien? u.a. Java Basics - Anfänger-Themen 10
J Probleme mit dem Ausführen von .class Dateien Java Basics - Anfänger-Themen 14
H exterme class Dateien in Eclipse Project einbinden Java Basics - Anfänger-Themen 1
M Einbinden fertiger Klassen (.class-Dateien) in Projekt Java Basics - Anfänger-Themen 3
G Anzahl .class Dateien verringern Java Basics - Anfänger-Themen 15
C Kann man class Dateien auch lesen? Java Basics - Anfänger-Themen 8
T *.class Dateien Java Basics - Anfänger-Themen 12
Z Mit Eclipse Class Dateien benutzen. Java Basics - Anfänger-Themen 7
H class Dateien ausführbar machen Java Basics - Anfänger-Themen 2
N .class-Dateien bearbeiten? Java Basics - Anfänger-Themen 4
M Class Dateien verwenden! Java Basics - Anfänger-Themen 10
lan2711 Class Dateien auf anderen Rechner zum Laufen kriegen. Java Basics - Anfänger-Themen 5
Silver-Blue wie führe ich class dateien im Web oder auf Server aus Java Basics - Anfänger-Themen 3
G Programm findet andere .class-Dateien nicht Java Basics - Anfänger-Themen 6
B Was ist der Unterschied zwischen .java- und .class Dateien Java Basics - Anfänger-Themen 3
T IntelliJ / SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder". Java Basics - Anfänger-Themen 4
wolei Java generic interface in a generic class Java Basics - Anfänger-Themen 6
Say Class scope und Instance scope und Getter nur selbstgeschrieben Methoden Java Basics - Anfänger-Themen 11
Say abstract class und Objekt erzeugen - Dringend Hilfe Java Basics - Anfänger-Themen 10
C Was tun wenn .class erwartet wird ? Java Basics - Anfänger-Themen 6
M "Class<T> clazz" im Constructor - auch für int möglich? Java Basics - Anfänger-Themen 7
M error: '.class' expected switch(char) Java Basics - Anfänger-Themen 32
123456789sssssaaaa Java Wrapper Class Java Basics - Anfänger-Themen 13
FHEFHJHFJH error: class names, 'summe_bsp', are only accepted if annotation processing is explicitly requested Java Basics - Anfänger-Themen 3
N Variabel in eine class mit "extends JLabel" übertragen Java Basics - Anfänger-Themen 2
J Methode als Class anlegen Java Basics - Anfänger-Themen 7
A Fehler beim Ausführen einer class Datei Java Basics - Anfänger-Themen 6
G Could not initialize class “NoClassDefFoundError" Java Basics - Anfänger-Themen 2
Mr_Kleeblatt Operatoren if (arri[i] != "test.java"&& arri[i] != "test.class") Java Basics - Anfänger-Themen 3
S Generics-Problem: Class, Class<?>, Class<Object> Java Basics - Anfänger-Themen 4
J Klassen .class Datei öffnen Java Basics - Anfänger-Themen 31
O Verständniss Problem bei abstract class Java Basics - Anfänger-Themen 7
H .class Datei wird nicht ausgeführt Java Basics - Anfänger-Themen 2
H .jar unterschied .class Java Basics - Anfänger-Themen 3
J class version 52 und 56 Java Basics - Anfänger-Themen 6
L Fehler bei der AUsführung der .class Datei Java Basics - Anfänger-Themen 23
A Class not found - Jar liegt am classpath Java Basics - Anfänger-Themen 2
A Wie erkennt die JVM welche class verwendet werden muss? Java Basics - Anfänger-Themen 3
dapzoo Class File Version zu niedrig? Ausführen über Eingabeaufforderung nicht möglich Java Basics - Anfänger-Themen 14
J Methoden Methoden einer public class AutoCompleteTextField verwenden Java Basics - Anfänger-Themen 14
R HTTP-Links in Java Class finden Java Basics - Anfänger-Themen 3
D jsoup get class name mit leerzeichen Java Basics - Anfänger-Themen 7
D doc.seect jsouo bestimmtes class element finden Java Basics - Anfänger-Themen 1
B Objekte zählen/ Vererbung/ Kopplung/ Interface/ Abstract Class Java Basics - Anfänger-Themen 5
N Fehlende .class Datei Java Basics - Anfänger-Themen 4
S Daten aus eigenständiger .class-Datei abrufen Java Basics - Anfänger-Themen 1
C Was macht `public class ClassName<T extends Comparable<T>>`? Java Basics - Anfänger-Themen 14
W Externe class in Eclipse importieren Java Basics - Anfänger-Themen 0
X Variablen Problem bei Aufteilung in verschiedene Class-Files Java Basics - Anfänger-Themen 4
Javafan01 Dateiname und Public class Java Basics - Anfänger-Themen 4
S Klassen Class mit Funktionen importieren Java Basics - Anfänger-Themen 1
L jar, class, java und wieder zurück Java Basics - Anfänger-Themen 8
T class Datei auslesen Java Java Basics - Anfänger-Themen 5
B Classpath Class lässt sich nicht öffnen Java Basics - Anfänger-Themen 3
J Compiler-Fehler Fehler bei Vektor (E extends Object declared in class Vector) Java Basics - Anfänger-Themen 9
temi Verständnisproblem Class.forName() Java Basics - Anfänger-Themen 3
S setText aus anderer class heraus Java Basics - Anfänger-Themen 6
L Classpath Zwei Bibliotheken enthalten gleiche .class Datei Java Basics - Anfänger-Themen 6
F Taschenrechner "Error loading class..." Java Basics - Anfänger-Themen 5
D Interface Amazon Skill Kit, Interface but method in other class? Java Basics - Anfänger-Themen 3
J Compiler-Fehler class interface or enum expected Java Basics - Anfänger-Themen 1
wilmaed protected class Java Basics - Anfänger-Themen 0
C Erste Schritte Fehler beim *.class Aufruf über cmd.exe Java Basics - Anfänger-Themen 9
N class in class Java Basics - Anfänger-Themen 13
B Linux - Error: Could not find or load main class application.Main Java Basics - Anfänger-Themen 28
V Was bewirkt das Schlüsselwort extends in Verbindung mit class bzw. public class ? Java Basics - Anfänger-Themen 2
Azazel Ist die abstract class das selbe wie ein interface ? Java Basics - Anfänger-Themen 33
lBlKha0s Fehlermeldung : class interface or enum expected Java Basics - Anfänger-Themen 9
P could not find main class obwohl da Java Basics - Anfänger-Themen 17
UnityFriday method getPrevious in class List<ContentType> cannot be applied to given types Java Basics - Anfänger-Themen 29
T error: class, interface, or enum expected Java Basics - Anfänger-Themen 5
D Compiler-Fehler error: .class expected Java Basics - Anfänger-Themen 2
S Dataflow von Start bis die SystemProperties class Java Basics - Anfänger-Themen 1
Detox Class Datei erzeugen nicht möglich über cmd Java Basics - Anfänger-Themen 1
M Scanner class Java Basics - Anfänger-Themen 6
L Compiler-Fehler error: class, interface or enum expected Java Basics - Anfänger-Themen 2
P Compiler-Fehler Could not load or find main class fehler Java Basics - Anfänger-Themen 15
J Gestaltung der GUI.class Java Basics - Anfänger-Themen 1
P Compiler-Fehler could not find or load main class Java Basics - Anfänger-Themen 5
Z Gleiches Verzeichnis für class und java unter Windows Muss? Java Basics - Anfänger-Themen 11
D neue public static class variablen in array speichern? Java Basics - Anfänger-Themen 6
T Wie vergleiche ich die Jahre aus der while Schleife die in ( public class) fuer cbx geschrieben sind Java Basics - Anfänger-Themen 5
S Vererbung Fehlermeldung: the hierarchy of the type "class name" is inconsistent Java Basics - Anfänger-Themen 10
J Erste Schritte .class datei in meine form inkludieren Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben