2010-10-27 32 views
6

Tôi có mã Java này một số người khác đã viết, đặc biệt là JSP. Tôi đang cố gắng hiểu mọi thứ ở đâu.Mã Java - đang tìm mã nguồn

Trong index.jsp (file chính mà được nạp) của tôi nó nhập khẩu một không gian tên nào đó (tôi giả sử tomcat không tất cả các biên dịch, tôi không biết):

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

vị trí vật lý này không tồn tại trong CLASSPATH của tôi vì vậy tôi cho rằng nó đề cập đến một không gian tên bên trong cấu trúc mã .jar (đúng với tôi nếu tôi sai).

Vậy làm cách nào để tôi tìm mã nguồn cho điều này? Tomcat có đặt một vị trí CLASSPATH cụ thể cho từng dự án không?

EDIT

Tôi đang cố gắng để hiểu nếu Tomcat sau một cấu trúc nhất định để tôi có thể tìm thấy nơi mã nguồn cho công cụ này là.

Trả lời

6

Từ góc nhìn của một trang web ứng dụng, lớp hoặc tài nguyên tải trông trong kho sau, theo thứ tự này:

* 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 

từ the Tomcat docs.

Các nhiều khả năng vị trí dành cho các lớp cụ thể cho ứng dụng của bạn là WEB-INF/lib/*.jarWEB-INF/classes. Tuy nhiên như những người khác đã đề cập, điều này sẽ chứa các tệp lớp được biên dịch và bạn wont có thể xem nguồn java chính xác (ngay cả sau khi giải mã)

1

lọ là mã javabyte được nén. Để lấy các nguồn bạn sẽ phải dịch ngược chúng. Có một vài tiện ích ngoài kia, nhưng làm việc với mã bị biên dịch lại là một cơn ác mộng nếu bạn hỏi tôi, tôi sẽ không giới thiệu nó, đặc biệt là nếu bạn chưa biết điều này. : D

Mã nguồn thường sẽ được lưu trữ ở nơi khác.

Theo như câu hỏi cụ thể của bạn về Tomcat, tôi không biết, chưa bao giờ làm việc với Tomcat trước đây.

0

đường dẫn lớp là, trong kinh nghiệm của tôi, thường được thiết lập trong kiến ​​xây dựng tập tin của từng dự án

1

Bạn có thể tìm kiếm các lọ ở hai nơi:

  1. /web-inf/lib directory (nó có tất cả các lọ tùy chỉnh được sử dụng bởi các ứng dụng)
  2. việc xây dựng tập tin (mvn, kiến ​​vv)
+0

tệp xây dựng thường nằm ở đâu trong Tomcat? –

+0

nếu bạn đang sử dụng kiến, hãy tìm tệp build.xml thường trong thư mục mẹ và nếu bạn đang sử dụng maven, hãy tìm pom.xml (nó liệt kê tất cả các lọ được sử dụng) – zengr

+0

Tệp xây dựng kiến ​​/ maven được sử dụng để xây dựng web của bạn ứng dụng để triển khai vào Tomcat - vì vậy nó sẽ không nằm trong Tomcat nhưng trong thư mục mã nguồn, mà tôi tin rằng OP không có quyền truy cập vào? – JoseK

1

Source code có thể không có mặt ở đó cả. Vì vậy, trước hết, bạn cần phải tìm chính xác rằng jar có lớp được nhập đó. Sau đó, chỉ cần tìm kiếm trên web để tìm trang web của dự án/API. Ở đó bạn có thể tìm nguồn, nếu nó là một thư viện nguồn mở. Nếu không, việc giải phóng là tùy chọn duy nhất còn lại và điều đó có thể không hữu ích.