¿Es posible navegar por la fuente de OpenJDK en línea?

80

¿Es posible navegar por el código fuente de OpenJDK en línea, como puedo hacer con los proyectos de SourceForge? Nunca antes había usado Mercury, así que me sentí confundido.

(Nota: no quiero descargar la fuente. Solo quiero navegar en línea para ver cómo se implementan algunos métodos).

Hosam Aly
fuente

Respuestas:

94

OpenJDK ahora está en GitHub: https://git.openjdk.java.net/jdk

Es un proyecto grande, pero encontrará las implementaciones de las clases principales en jdk / src / java.base / share / classes .

Por ejemplo, puede encontrar la implementación de java.util.List aquí .


Si necesita navegar por versiones anteriores, aún necesita usar la antigua interfaz de Mercurial .

La interfaz de Mercurial es bastante confusa si no está acostumbrado, y dado que este es un proyecto grande, puede ser difícil encontrar lo que está buscando.

Aquí hay un ejemplo:

Para encontrar la implementación de JDK6 java.util.List, seleccione "jdk6", "jdk", seleccione navegar. Luego busque src / share / classes / java / util / List.java.

Deberías terminar en http://hg.openjdk.java.net/jdk6/jdk6/jdk/file/tip/src/share/classes/java/util/List.java

Rasmus Faber
fuente
2
Para cualquiera que intente esto, el número de sucursal predeterminado cambia. Entonces, el procedimiento descrito es correcto, pero no se sorprenda si el enlace no funciona.
Patrick
5
si desea la versión JDK7, está aquí: hg.openjdk.java.net/jdk7/jdk7/jdk/file/tip/src/share/classes/…
user102008
3
@Patrick: si reemplaza el ID del conjunto de cambios con 'tip', siempre funcionará. La versión a la que apunta puede cambiar con el tiempo, pero siempre será la más actualizada (en cierto sentido). He editado la publicación en consecuencia.
Tom Anderson
4
¿Qué significa "puerta" en el nombre del repositorio?
finnw
2
Ahora bien, si quiero ver el código nativo que implementa los métodos nativos, ¿dónde puedo encontrarlos?
Ustaman Sangat
8

El último código fuente de la biblioteca de clases JDK 8 OpenJDK Java se puede encontrar aquí: http://hg.openjdk.java.net/jdk8u/jdk8u/jdk/file/tip/src/share/classes/

Abdull
fuente
No es la última, la URL que contiene jdk8ues la más reciente, no jdk8.
Trump 2020 - La justicia llegará el
@EricWang, sí, ¡gracias por darte cuenta! Ahora he actualizado mi respuesta obsoleta.
Abdull
7

Este es el paso básico para obtener la versión más reciente o cualquier versión publicada del Openjdk 8código fuente (o cualquier versión de Java existente) y usarlos en formato Eclipse.

Pasos :

  • [buscar fuente]
  • URL abierta para jdk, por ejemplo, http://hg.openjdk.java.net/jdk8u/jdk8u/jdk/
  • hacer clic tags
  • elija la etiqueta adecuada, por ejemplo jdk8u73-b02
  • luego haga clic browse,
  • luego busque en la carpeta src/share/classes,
  • [fuente de descarga]
  • a continuación, haga clic en uno de bz2/ zip/ gz, a la fuente de descarga en formato comprimido correspondiente, ( por ejemplo, para jdk8u73-b02en el zipformato, el URL será: http://hg.openjdk.java.net/jdk8u/jdk8u/jdk/archive/2ab13901d6f1.zip/ src / compartir / clases / )
  • [usar en eclipse]
  • descomprimirlo,
  • comprima la carpeta "clases /", haga "clases /" como el directorio raíz del archivo .zip, (por ejemplo cd jdk-2ab13901d6f1/src/share/, primero , luego zip -r openjdk_8u73_b2_src.zip classes/)
  • Mueva el archivo zip creado a la ubicación adecuada, permanecerá allí por un tiempo (por ejemplo, mv openjdk_8u73_b2_src.zip /media/Eric/software/java/jdk/openjdk/openjdk8u73-b02/source/ )
  • en eclipse, especifique el archivo fuente para los jar de jre instalado, podría especificar el archivo adjunto de origen para cada jar de jre instalado respectivamente, el jar más común es probablemente rt.jar ,
  • opcionalmente, es posible que necesite actualizar el proyecto para que surta efecto, no estoy seguro de si es necesario,
  • pruébelo: en eclipse, ctrl + shift + tluego ingrese Cancellable, seleccione el sun.nio.fs.Cancellablejre instalado correspondiente, si el código fuente está disponible, entonces es bueno, porque esta fuente no está disponible en jdk_home/src.zip, debe ser de la fuente openjdk adicional,
  • volver a cambiar la fuente: podría volver a usar "jdk_home / src.zip", si no desea usar la fuente externa openjdk,
  • Okay
Trump 2020 - La justicia vendrá
fuente
6

Aquí hay una forma de explorar los repositorios y ver solo los bits que desea. http://hg.openjdk.java.net/ ¿Es eso lo que está preguntando?

jwpfox
fuente
1
No exactamente. Fui allí antes de preguntar, pero no pude encontrar mi camino en la interfaz de Mercurial. :(
Hosam Aly
Lo siento, en realidad fui a openjdk.java.net/projects/nio e intenté encontrar mi camino desde allí. Revisaré este enlace nuevamente. Gracias.
Hosam Aly