Có thể duyệt nguồn của OpenJDK trực tuyến không?


80

Có thể duyệt mã nguồn của OpenJDK trực tuyến, giống như tôi có thể làm với các dự án của SourceForge không? Tôi chưa bao giờ sử dụng Mercury trước đây, vì vậy tôi cảm thấy bối rối.

(Lưu ý: Tôi không muốn tải xuống nguồn. Tôi chỉ muốn duyệt trực tuyến để xem một số phương pháp được triển khai như thế nào.)

Câu trả lời:


94

OpenJDK hiện đã có trên GitHub: https://git.openjdk.java.net/jdk

Đây là một dự án lớn, nhưng bạn sẽ tìm thấy các triển khai của các lớp lõi trong jdk / src / java.base / share / class .

Ví dụ, bạn có thể tìm thấy việc triển khai java.util.List tại đây .


Nếu bạn cần duyệt các phiên bản cũ hơn, bạn vẫn cần sử dụng giao diện Mercurial cũ .

Giao diện Mercurial ở đó khá khó hiểu nếu bạn chưa quen và vì đây là một dự án lớn nên có thể khó tìm thấy thứ bạn đang tìm kiếm.

Đây là một ví dụ:

Để tìm java.util.List triển khai JDK6, hãy chọn "jdk6", "jdk", chọn duyệt. Sau đó, duyệt đến src / share / class / java / use / List.java.

Bạn nên kết thúc tại http://hg.openjdk.java.net/jdk6/jdk6/jdk/file/tip/src/share/classes/java/util/List.java


2
Đối với bất kỳ ai đang thử điều này, số chi nhánh mặc định sẽ thay đổi. Vì vậy, quy trình được mô tả là chính xác, chỉ cần đừng ngạc nhiên nếu liên kết không hoạt động.
Patrick

5
nếu bạn muốn có phiên bản JDK7, nó có ở đây: hg.openjdk.java.net/jdk7/jdk7/jdk/file/tip/src/share/classes/…
user102008

3
@Patrick: nếu bạn thay thế ID tập hợp thay đổi bằng 'mẹo', nó sẽ luôn hoạt động. Phiên bản mà nó trỏ tới có thể thay đổi theo thời gian, nhưng nó sẽ luôn là phiên bản cập nhật nhất (theo một nghĩa nào đó). Tôi đã chỉnh sửa bài viết cho phù hợp.
Tom Anderson

4
"Cổng" trong tên repo có nghĩa là gì?
finnw

2
Bây giờ nếu tôi muốn xem mã gốc triển khai các phương thức gốc, tôi có thể tìm chúng ở đâu?
Ustaman Sangat


7

Dưới đây là các bước cơ bản để có được mới nhất hoặc bất kỳ phiên bản phát hành của Openjdk 8(hoặc bất kỳ phiên bản java hiện có) mã nguồn, và sử dụng chúng trong Eclipse.

Các bước :

  • [nguồn duyệt]
  • Mở url cho jdk, ví dụ: http://hg.openjdk.java.net/jdk8u/jdk8u/jdk/
  • nhấp chuột tags
  • chọn thẻ thích hợp, ví dụ: jdk8u73-b02
  • sau đó nhấp vào browse,
  • sau đó duyệt vào thư mục src/share/classes,
  • [nguồn tải xuống]
  • sau đó nhấp vào một trong bz2/ zip/ gz, nguồn tải về ở định dạng nén có liên quan, ( ví dụ như cho jdk8u73-b02trong zipđịnh dạng, url sẽ là: http://hg.openjdk.java.net/jdk8u/jdk8u/jdk/archive/2ab13901d6f1.zip/ src / share / class / )
  • [sử dụng trong nhật thực]
  • giải nén nó,
  • nén thư mục "class /", tạo "class /" làm thư mục gốc của tệp .zip, (ví dụ: trước tiên cd jdk-2ab13901d6f1/src/share/, sau đó zip -r openjdk_8u73_b2_src.zip classes/)
  • di chuyển tệp zip đã tạo đến vị trí thích hợp, nó sẽ ở đó một lúc, (ví dụ mv openjdk_8u73_b2_src.zip /media/Eric/software/java/jdk/openjdk/openjdk8u73-b02/source/:)
  • trong eclipse, chỉ định tệp nguồn cho các lọ jre đã cài đặt, có thể chỉ định tệp đính kèm nguồn cho từng lọ chứa jre đã cài đặt tương ứng, lọ phổ biến nhất có lẽ là rt.jar,
  • tùy chọn, có thể cần làm mới dự án để làm cho nó hoàn toàn có hiệu lực, không chắc là cần thiết,
  • kiểm tra nó: trong eclipse, ctrl + shift + tsau đó nhập liệu Cancellable, chọn sun.nio.fs.Cancellablejre được cài đặt tương ứng, nếu mã nguồn có sẵn thì tốt, vì nguồn này không có sẵn jdk_home/src.zip, nó phải từ nguồn openjdk bổ sung,
  • chuyển nguồn trở lại: có thể chuyển về sử dụng "jdk_home / src.zip", nếu không muốn sử dụng nguồn openjdk bên ngoài,
  • đồng ý

6

Đây là một cách để duyệt qua các kho lưu trữ và chỉ xem các bit bạn muốn. http://hg.openjdk.java.net/ Đó có phải là điều bạn đang hỏi?


1
Không chính xác. Tôi đã đến đó trước khi hỏi nhưng tôi không thể tìm thấy đường đi quanh giao diện Mercurial. :(
Hosam Aly

Xin lỗi, tôi đã thực sự truy cập openjdk.java.net/projects/nio và cố gắng tìm đường từ đó. Tôi sẽ kiểm tra lại liên kết này. Cảm ơn.
Hosam Aly




Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.