# Möchte gerne eine seperate Klasse eines Tomcat Projekts Neu-Kompilieren



## Don83 (25. Feb 2015)

Liebe Leute,

folgendes: Nachdem ich mich halbwegs mit "Computern" auskenne meinen die Leute immer ich habe die Weisheit mit Löfeln gegessen und kann jedes Problem lösen. So kam es nun, dass ich mehrfach darum gebeten wurde in einem alten Projekt in dem der Entwickler abgesprungen ist ein "paar" Notänderungen durchzuführen. Dabei geht es um ein TomCat Projekt. 

Der Entwickler ist quasi nicht mehr zu erreichen - was blöd ist. Das heisst ich stehe da mit der *.war Datei und jo... Ok - es handelt sich um ein relativ großes Projekt mit allmöglichen Frameworks - Maven, Hybernate usw. usw.. Ich habe die *.war File nun einfach einmal entpackt und die Daten Dekompiliert.

Es gibt ungefähr 50-60 Java-Klassen. War erstmal ein wenig Arbeit zu finden in welcher der Klassen überhaupt etwas zu ändern wäre. Die Klasse habe ich gefunden und ich meine ich konnte im Java-Code nun auch passende Änderungen durchführen. 

Nun nur mein Problem: Kann ich die Klasse irgendwie problemlos wieder kompilieren ohne wieder das komplette Projekt aufzusetzen. Also - was ich meine: Wenn ich die Klasse zum Beispiel einfach in Eclipse kopiere. Dann fehlen ja die ganzen Pakete etc.. Also wenn ich dann kompilere (die Klasse letztendlich ausführe) dann kommt eine viel zu kleine *.class File raus. Muss ich damit dies alles klappt, das komplette Projekt neu aufsetzen, oder wie gehe ich am besten / schnellsten vor?


----------



## stg (25. Feb 2015)

Du kannst das war-file nach beliebigen mit einem beliebigen zip-Manager bearbeiten.

Zur Compile-Zeit der besagten .java-Datei müssen natürlich alle Abhängigkeiten verfügbar sein.

Alle mir bekannten gängigen IDEs stellen aber zudem auch die Möglichkeit bereit ganze Projecte aus einem .war-file zu importieren.


----------



## Don83 (26. Feb 2015)

Hallo nochmals,

also, mir ist soweit klar, dass ich in der WAR file Dateien einfach austauschen kann. Es gibt zum Beispiel eine Sprachdatei in der Textstrings übersetzt werden. Da habe ich änderungen gemacht, wieder in die War Datei gelegt und fertig.

Mir bereitet nur JAVA Probleme. An den Code komme ich durchs dekompilieren. Dafür hatte ich ein spezielles tool verwendet. Nun wollte ich wie gesagt, eine Detai wieder zurück kompilieren. Den Inhalt einfach in eine leere Klasse kopieren geht natürlich nicht, dann fehlen Abhängigkeiten etc.. Mir ist nurnoch nicht klar, wie ich kompilieren kann, so dass all die Abhängigkeiten erhalten bleiben.

Anbei mal ein Screenshot der zeigt was ich zum Beispiel über Eclipse versucht habe. Am Ende werden die Java-Dateien wirklich ins System eingebunden, aber ich weis nicht, wie gesagt, wie ich sie kompilieren kann. Ausführbar sind die meisten klassen wegen fehlender Main Klasse nicht. 
Anhang anzeigen 7497

Also - falls mir hier irgendwie Rat geben kann, wie ich nun die Java-Dateien wieder in die *.class Dateien überführen kann (leichtester Weg) - da wäre ich ser dankbar.


----------



## Don83 (26. Feb 2015)

Ok - ich denke hat sich gerade erledigt. Ich bin wie im Screenshot vorgegangen. Dann habe ich einfach den kompletten Ordner rüber in das src Verzeichnis kopiert und noch alle externen Bibliotheken dem Buildpath hinzugefügt. Zumindest werden mir nun keine fehler mehr angezeigt. Kompilieren sollte nun gleich klappen (werds zumindest gleich mal testen).


----------

