Java code - looking for source code
I have this Ja开发者_开发百科va code some other person wrote, specifically JSPs. I am trying to understand where everything is.
In my index.jsp
(the main file which is loaded) it imports a certain namespace (I suppose tomcat does all the compiling, I don't know):
<%@ page import="org.sgrp.SearchResults"%>
This physical location doesn't exist in my CLASSPATH so I suppose it's referring to a namespace inside the .jar code structure (correct me if I'm wrong).
So how am I suppose to find the source code for this? Does Tomcat set a specific CLASSPATH location for each project?
EDIT
I'm trying to understand if Tomcat follows a certain structure so I can find where the source code for this stuff is.
From the perspective of a web application, class or resource loading looks in the following repositories, in this order:
* 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
from the Tomcat docs.
The most likely locations for classes specific to your application are the WEB-INF/lib/*.jar
and WEB-INF/classes
. However as others have mentioned, this will contain compiled class files and you wont be able to see the exact java source (even after decompiling)
jars are compressed javabyte code. In order to get the sources you'll have to decompile them. There are a few utilities out there, but working with decompiled code is a bit of a nightmare if you ask me, I wouldn't recommend it, especially not if you didn't already know this. :D
The source code will generally be stored elsewhere.
As far as your specific questions on Tomcat, I don't know, having never working with Tomcat before.
You can look for the jars in two places:
/web-inf/lib directory
(it has all the custom jars in use by the app)- The build file (mvn, ant etc)
Source code might not be there at all. So, first of all, you need to find which jar
exactly has that imported class. Then just search the web to find the project/API website. There you can look for the source, if its an open source library. Otherwise, decomplilation is the only option left, and that might not be very helpful.
class path is, in my experience, commonly set in the ant build file of each project
精彩评论