我有一些其他人写过的Java代码,特别是JSP。我想知道一切都在哪里。
在我的index.jsp
(加载的主文件)中,它导入了某个命名空间(我想tomcat会进行所有编译,我不知道):
<%@ page import="org.sgrp.SearchResults"%>
我的CLASSPATH中不存在这个物理位置,所以我想它指的是.jar代码结构中的命名空间(如果我错了,请纠正我)。
那我怎么想找到这个的源代码呢? Tomcat是否为每个项目设置了特定的CLASSPATH位置?
编辑
我试图了解Tomcat是否遵循某种结构,以便找到这些内容的源代码所在。
答案 0 :(得分:6)
来自the Tomcat docs的从网络的角度来看 应用程序,类或资源加载 查看以下存储库, 按此顺序:
* 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
。
特定于您的应用的类的最可能的位置是WEB-INF/lib/*.jar
和WEB-INF/classes
。但是正如其他人提到的,这将包含已编译的类文件,并且不会能够看到确切的java源代码(即使在反编译后)
答案 1 :(得分:1)
jar是压缩的javabyte代码。为了获得源代码,您必须对它们进行反编译。有一些实用程序,但如果你问我,使用反编译代码是一个噩梦,我不会推荐它,特别是如果你还不知道这一点。 :d
源代码通常存储在其他地方。
至于你对Tomcat的具体问题,我不知道,以前从未使用过Tomcat。
答案 2 :(得分:1)
您可以在两个地方寻找罐子:
/web-inf/lib directory
(它有应用程序使用的所有自定义jar)答案 3 :(得分:1)
源代码可能根本不存在。因此,首先,您需要找到哪个jar
确切地具有该导入的类。然后只需搜索网页即可找到项目/ API网站。如果它是一个开源库,你可以在那里寻找源代码。否则,转换是唯一剩下的选择,这可能不是很有帮助。
答案 4 :(得分:0)
类路径通常在每个项目的ant构建文件中设置