Czy można przeglądać źródła OpenJDK online?

80

Czy można przeglądać kod źródłowy OpenJDK online, tak jak mogę to zrobić z projektami SourceForge? Nigdy wcześniej nie używałem Merkurego, więc czułem się zdezorientowany.

(Uwaga: nie chcę pobierać źródła. Chcę tylko przejrzeć je online, aby zobaczyć, jak zaimplementowano niektóre metody).

Hosam Aly
źródło

Odpowiedzi:

94

OpenJDK jest teraz na GitHub: https://git.openjdk.java.net/jdk

Jest to duży projekt, ale implementacje podstawowych klas znajdziesz w jdk / src / java.base / share / classes .

Na przykład implementację java.util.List można znaleźć tutaj .


Jeśli chcesz przeglądać starsze wersje, nadal musisz korzystać ze starego interfejsu Mercurial .

Interfejs Mercurial jest dość zagmatwany, jeśli nie jesteś do niego przyzwyczajony, a ponieważ jest to duży projekt, znalezienie tego, czego szukasz, może być trudne.

Oto przykład:

Aby znaleźć implementację JDK6 java.util.List, wybierz "jdk6", "jdk", wybierz przeglądaj. Następnie przejdź do src / share / classes / java / util / List.java.

Powinieneś skończyć na http://hg.openjdk.java.net/jdk6/jdk6/jdk/file/tip/src/share/classes/java/util/List.java

Rasmus Faber
źródło
2
Dla każdego, kto spróbuje tego, zmieni się domyślny numer oddziału. Tak więc opisana procedura jest poprawna, po prostu nie zdziw się, jeśli link nie działa.
Patrick,
5
jeśli chcesz wersję JDK7, jest tutaj: hg.openjdk.java.net/jdk7/jdk7/jdk/file/tip/src/share/classes/ ...
user102008
3
@Patrick: jeśli zmienisz identyfikator zestawu zmian na „wskazówkę”, to zawsze zadziała. Wersja, na którą wskazuje, może się zmieniać w czasie, ale zawsze będzie najbardziej aktualna (w pewnym sensie). Odpowiednio zredagowałem post.
Tom Anderson,
4
Co oznacza „bramka” w nazwie repozytorium?
finnw
2
Jeśli teraz chcę zobaczyć kod natywny, który implementuje metody natywne, gdzie mogę je znaleźć?
Ustaman Sangat
8

Najnowszy kod źródłowy JDK 8 OpenJDK Java Class Library można znaleźć tutaj: http://hg.openjdk.java.net/jdk8u/jdk8u/jdk/file/tip/src/share/classes/

Abdull
źródło
To nie jest najnowsze, adres URL, który zawiera, jdk8ujest najnowszy, nie jdk8.
user218867
@EricWang, tak - dziękuję za uwagę! Zaktualizowałem moją przestarzałą odpowiedź.
Abdull
7

Oto podstawowy krok, aby uzyskać najnowsze lub dowolny wydana wersja z Openjdk 8(lub jakakolwiek istniejąca wersja java) kod źródłowy i używać ich w Eclipse.

Kroki :

  • [przeglądaj źródło]
  • Otwórz url dla jdk, np. Http://hg.openjdk.java.net/jdk8u/jdk8u/jdk/
  • Kliknij tags
  • wybierz odpowiedni tag, np jdk8u73-b02
  • następnie kliknij browse,
  • następnie przejdź do folderu src/share/classes,
  • [źródło pobierania]
  • następnie kliknij jeden z bz2/ zip/ gz, aby pobrać źródło w odpowiednim skompresowanym formacie ( np. jdk8u73-b02w zipformacie, adres URL będzie następujący: http://hg.openjdk.java.net/jdk8u/jdk8u/jdk/archive/2ab13901d6f1.zip/ src / share / classes / )
  • [użyj w zaćmieniu]
  • rozpakuj to,
  • spakuj folder „classes /”, utwórz „classes /” jako katalog główny pliku .zip (np. najpierw cd jdk-2ab13901d6f1/src/share/, potem zip -r openjdk_8u73_b2_src.zip classes/)
  • przenieś utworzony plik zip do odpowiedniej lokalizacji, pozostanie tam przez chwilę (np. mv openjdk_8u73_b2_src.zip /media/Eric/software/java/jdk/openjdk/openjdk8u73-b02/source/)
  • w eclipse, określ plik źródłowy dla słoików zainstalowanego jre, może określić załącznik źródłowy dla każdego słoika zainstalowanego jre, odpowiednio, najczęstszym jar jest prawdopodobnie rt.jar,
  • opcjonalnie może wymagać odświeżenia projektu, aby całkowicie zaczął obowiązywać, nie jestem pewien, czy to konieczne,
  • przetestuj to: w eclipse, ctrl + shift + ta następnie wprowadź Cancellable, wybierz sun.nio.fs.Cancellableodpowiedni zainstalowany jre, jeśli kod źródłowy jest dostępny, to dobrze, ponieważ to źródło nie jest dostępne w jdk_home/src.zip, musi pochodzić z dodatkowego źródła openjdk,
  • przełącz źródło z powrotem: może przełączyć się z powrotem na "jdk_home / src.zip", jeśli nie chcesz używać zewnętrznego źródła openjdk,
  • dobrze
user218867
źródło
6

Oto sposób na przeglądanie repozytoriów i przeglądanie tylko tych bitów, które chcesz. http://hg.openjdk.java.net/ Czy o to pytasz?

jwpfox
źródło
1
Nie dokładnie. Poszedłem tam, zanim zapytałem, ale nie mogłem znaleźć sposobu na obejście interfejsu Mercurial. :(
Hosam Aly
Przepraszam, wszedłem do openjdk.java.net/projects/nio i próbowałem znaleźć drogę stamtąd. Sprawdzę ponownie ten link. Dzięki.
Hosam Aly