Ist es möglich, die Quelle von OpenJDK online zu durchsuchen?


79

Ist es möglich, den Quellcode von OpenJDK online zu durchsuchen, genau wie ich es mit SourceForges Projekten tun kann? Ich habe Merkur noch nie benutzt, deshalb war ich verwirrt.

(Hinweis: Ich möchte die Quelle nicht herunterladen. Ich möchte sie nur online durchsuchen, um zu sehen, wie einige Methoden implementiert sind.)

Antworten:


93

OpenJDK ist jetzt auf GitHub: https://git.openjdk.java.net/jdk

Es ist ein großes Projekt, aber Sie finden die Implementierungen der Kernklassen unter jdk / src / java.base / share / classes .

Zum Beispiel können Sie die Implementierung von java.util.List finden hier .


Wenn Sie ältere Versionen durchsuchen müssen, müssen Sie weiterhin die alte Mercurial-Oberfläche verwenden .

Die Mercurial-Oberfläche dort ist ziemlich verwirrend, wenn Sie nicht daran gewöhnt sind, und da dies ein großes Projekt ist, kann es schwierig sein, das zu finden, wonach Sie suchen.

Hier ist ein Beispiel:

Um die JDK6-Implementierung java.util.List zu finden, wählen Sie "jdk6", "jdk" und dann "Durchsuchen". Navigieren Sie dann zu src / share / classes / java / util / List.java.

Sie sollten unter http://hg.openjdk.java.net/jdk6/jdk6/jdk/file/tip/src/share/classes/java/util/List.java landen


2
Für jeden, der dies versucht, ändert sich die Standardzweignummer. Das beschriebene Verfahren ist also korrekt. Seien Sie also nicht überrascht, wenn der Link nicht funktioniert.
Patrick

5
Wenn Sie die JDK7-Version möchten, finden Sie sie hier: hg.openjdk.java.net/jdk7/jdk7/jdk/file/tip/src/share/classes/…
user102008

3
@Patrick: Wenn Sie die ID des Änderungssatzes durch 'tip' ersetzen, funktioniert dies immer. Die Version, auf die es verweist, kann sich im Laufe der Zeit ändern, ist jedoch (in gewissem Sinne) immer die aktuellste. Ich habe den Beitrag entsprechend bearbeitet.
Tom Anderson

4
Was bedeutet "Tor" im Repo-Namen?
Finnw

2
Wenn ich nun den nativen Code sehen möchte, der die nativen Methoden implementiert, wo finde ich sie?
Ustaman Sangat


7

Hier ist der grundlegende Schritt, um die neueste oder eine veröffentlichte Version des Openjdk 8Quellcodes (oder eine vorhandene Java-Version) abzurufen und in zu verwenden Eclipse.

Schritte :

  • [Quelle durchsuchen]
  • Öffnen Sie die URL für jdk, z. B. http://hg.openjdk.java.net/jdk8u/jdk8u/jdk/
  • klicken tags
  • Wählen Sie das richtige Tag, z jdk8u73-b02
  • dann klicken Sie auf browse,
  • dann in Ordner navigieren src/share/classes,
  • [Quelle herunterladen]
  • klicken Sie dann auf eine der bz2/ zip/ gz, um Download - Quelle in relevantem komprimiertem Format ( zB für jdk8u73-b02in - zipFormat, wird die URL sein: http://hg.openjdk.java.net/jdk8u/jdk8u/jdk/archive/2ab13901d6f1.zip/ src / share / classes / )
  • [Verwendung in Eclipse]
  • dekomprimiere es,
  • komprimieren Sie den Ordner "classes /", machen Sie "classes /" zum Stammverzeichnis der ZIP-Datei (zB zuerst cd jdk-2ab13901d6f1/src/share/, dann zip -r openjdk_8u73_b2_src.zip classes/)
  • bewegen Sie die erstellte ZIP - Datei in die richtige Position, wird es bleiben dort für eine Weile (zB mv openjdk_8u73_b2_src.zip /media/Eric/software/java/jdk/openjdk/openjdk8u73-b02/source/)
  • Geben Sie in Eclipse die Quelldatei für Gläser mit installiertem JRE an. Geben Sie den Quellanhang für jedes Glas mit installiertem JRE an. Das häufigste Glas ist wahrscheinlich rt.jar:
  • Optional muss möglicherweise ein Projekt aktualisiert werden, damit es vollständig wirksam wird. Ich bin mir nicht sicher, ob dies erforderlich ist.
  • Testen Sie es: Wählen Sie in Eclipse und geben Sie ctrl + shift + tdann Cancellabledas sun.nio.fs.Cancellableentsprechende installierte jre ein. Wenn der Quellcode verfügbar ist, ist es gut, da diese Quelle nicht verfügbar jdk_home/src.zipist. Sie muss aus der zusätzlichen openjdk-Quelle stammen.
  • Quelle zurückschalten: könnte zurückschalten, um "jdk_home / src.zip" zu verwenden, wenn Sie die externe openjdk-Quelle nicht verwenden möchten,
  • OK

6

Hier ist eine Möglichkeit, die Repositorys zu durchsuchen und nur die gewünschten Teile anzuzeigen. http://hg.openjdk.java.net/ Ist es das, was Sie fragen?


1
Nicht genau. Ich war dort, bevor ich gefragt habe, aber ich konnte mich in der Mercurial-Oberfläche nicht zurechtfinden. :(
Hosam Aly

Entschuldigung, ich bin tatsächlich zu openjdk.java.net/projects/nio gegangen und habe versucht, mich von dort aus zurechtzufinden. Ich werde diesen Link noch einmal überprüfen. Vielen Dank.
Hosam Aly




Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.