2010-10-27 18 views
6

Ich habe diesen Java-Code eine andere Person geschrieben, speziell JSPs. Ich versuche zu verstehen, wo alles ist.Java-Code - auf der Suche nach Quellcode

In meinem index.jsp (die Hauptdatei, die geladen wird) importiert es einen bestimmten Namensraum (ich nehme an tomcat nicht alle Compilieren, ich weiß es nicht):

<%@ page import="org.sgrp.SearchResults"%> 

Diese physischen Standort existiert nicht in meinem CLASSPATH nehme ich an, dass es sich auf einen Namespace innerhalb der .jar-Code-Struktur bezieht (korrigiere mich, wenn ich falsch liege).

Also, wie soll ich den Quellcode dafür finden? Stellt Tomcat für jedes Projekt einen bestimmten CLASSPATH-Speicherort ein?

EDIT

Ich versuche, für diese Dinge zu verstehen, wenn Tomcat eine bestimmte Struktur folgt, so kann ich feststellen, wo der Quellcode ist.

Antwort

6

Aus der Perspektive eines Web-Anwendung , Klasse oder Laden von Ressourcen in der folgenden Repositories sieht, in dieser Reihenfolge:

* Bootstrap classes of your JVM 
* System class loader classes 
* /WEB-INF/classes of your web application 
* /WEB-INF/lib/*.jar of your web application 
* $CATALINA_HOME/lib 
* $CATALINA_HOME/lib/*.jar 

von the Tomcat docs.

Die höchstwahrscheinlich Standorte für spezielle Klassen für Ihre Anwendung sind die WEB-INF/lib/*.jar und WEB-INF/classes. Wie andere bereits erwähnt haben, enthält dies kompilierte Klassendateien und Sie wont in der Lage, die genaue Java-Quelle zu sehen (auch nach dem Dekompilieren)

1

Gläser sind komprimierte Javabyte-Code. Um die Quellen zu erhalten, müssen Sie sie dekompilieren. Es gibt ein paar Dienstprogramme da draußen, aber die Arbeit mit dekompiliertem Code ist ein bisschen ein Albtraum, wenn Sie mich fragen, ich würde es nicht empfehlen, vor allem nicht, wenn Sie das nicht schon wussten. : D

Der Quellcode wird normalerweise an anderer Stelle gespeichert.

Soweit Ihre spezifischen Fragen zu Tomcat, ich weiß nicht, noch nie mit Tomcat zu arbeiten.

0

Classpath ist, nach meiner Erfahrung, die üblicherweise in der Ant-Build-Datei jedes Projekts

1

Sie für die Gläser in zwei Stellen suchen können:

  1. /web-inf/lib directory (es hat alle benutzerdefinierten Gläser in Verwendung durch die app)
  2. die Build-Datei (MVN, Ameise usw.)
+0

wo ist die Build-Datei in der Regel in Tomcat befindet? –

+0

Wenn Sie ant verwenden, suchen Sie allgemein nach build.xml im übergeordneten Ordner und wenn Sie maven verwenden, suchen Sie nach pom.xml (es listet alle verwendeten jars auf) – zengr

+0

Die Datei ant/maven build wird verwendet, um Ihr Web zu erstellen App für den Einsatz in Tomcat - also nicht in Tomcat, sondern im Quellcodeordner, auf den das OP meines Erachtens keinen Zugriff hat? – JoseK

1

Quellcode könnte dort überhaupt nicht sein. Also, zuerst müssen Sie herausfinden, welche jar genau diese importierte Klasse hat. Suchen Sie dann im Web nach der Projekt-/API-Website. Dort können Sie nach der Quelle suchen, wenn es sich um eine Open-Source-Bibliothek handelt. Andernfalls ist die Dekompilierung die einzige verbleibende Option, und das ist möglicherweise nicht sehr hilfreich.

Verwandte Themen