¿Dónde encontrar el código fuente Java JDK? [cerrado]

153

Me gustaría ver qué hace un método en la API de Java. Entonces quiero el código fuente JDK. Antes de reinstalar Linux, tenía el src.zippaquete con todo el código fuente oficial. Solo tenía que decirle a Eclipse dónde está este archivo y pude ver el código. Pero ahora ya no tengo el archivo ...

Entonces la pregunta es: ¿Dónde puedo encontrarlo?

Martijn Courteaux
fuente
16
Siempre he encontrado el src.ziparchivo que contiene la API pública de Java en el directorio de instalación de JDK. ¿Es eso lo que está buscando? (He usado principalmente Windows, así que tal vez la distribución de Linux no lo tiene).
Ash
16
Es ridículo que esta pregunta sea la número 3 en Google cuando se busca la fuente JDK. # 1 y # 2 son enlaces de Oracle que NO tienen enlaces de código fuente. Siempre hago esta pregunta cuando instalo JDK. Oráculo por favor.
Andrzej Rehmann
44
src.zip es el paquete fuente solo para la API principal. No hay fuentes disponibles públicamente para todo Java SE de Oracle, algunas partes son de código cerrado. Sin embargo, dependiendo de una plataforma, puede instalar y usar en binario OpenJDK con fuentes 100% disponibles. Para las fuentes, diríjase a openjdk.java.net y clone un repositorio de fuentes para la versión que necesita. Para los archivos binarios: algunos proveedores proporcionan dichos archivos binarios, incluido IcedTea para Linux.
Ivan Krylov
1
@Hoto, he estado usando Java desde 1996 y me estoy arrancando el pelo tratando de encontrar el oráculo src.zip para JDK7. Esto es increíblemente estúpido. ¿Dónde está TF? Nunca solía ser tan difícil. Tenga en cuenta que no quiero OpenJDK.
2
@ Ash, solía encontrar siempre un src.zip en el directorio de instalación también. Luego lo extraería a un directorio ./src/, y todo estaba bien. Pero no está allí ahora. De hecho, el archivo Léame de JDK 1.7 indica que debe haber un src.zip presente. Y no lo hay. Esto es enloquecedor.

Respuestas:

128

No ha dicho qué versión desea, pero puede descargar aquí un archivo del código fuente de JDK 8 , junto con JDK 7 y JDK 6 .

Además, puede explorar o clonar los repositorios de Mercurial: 8 , 7 , 6 .

Jon Skeet
fuente
1
Si; digamos que quiero 6 y luego en esa página de descarga, ¿qué debo descargar? El gran archivo jdk-6u21-ea-src-b04-jrl-05_may_2010.jar, 136.48 MB? Ya lo descargué. Pero no contiene el código fuente.
Martijn Courteaux
3
@Martijn: ¿Intentaste descargar el archivo jar grande y luego leer el archivo README dentro de él? Básicamente solo lo ejecutas java -jar jdk-6u21-ea-src-b04-jrl-05_may_2010.jar. Extraerá la fuente.
Jon Skeet
2
Sí lo hice. Y lo extraje como escribiste. Pero no hay fuente jar o zip en él.
Martijn Courteaux
1
Solo quería agregar que el lugar actual (2013) ahora es jdk7.java.net que redirige a OTN para cualquier descarga.
Kedar Mhaswade
3
Para 1.7 también hay sourceforge.net/projects/jdk7src
Jason C
32

Es probable que ya haya obtenido el código fuente con el JDK, es cuestión de encontrar dónde está. En el caso, la carpeta JDK no contiene el código fuente:

sudo apt-get install openjdk-7-source

OSX Folks, busque en fórmulas homebrew.

En ubuntu, el comando anterior colocaría su archivo de fuente en: / usr / lib / jvm / openjdk-7 /

La buena noticia es que Eclipse ya lo llevará allí (Cómo vincular Eclipse al código fuente de Java):

Sigue los botones naranjas

ingrese la descripción de la imagen aquí ingrese la descripción de la imagen aquí ingrese la descripción de la imagen aquí

amertkara
fuente
16

Lamentablemente, a partir de este escrito, a pesar de su propio archivo Léame de documentación, no hay src.zip en los directorios de instalación de JDK 7 u 8 cuando descarga la versión de Windows .

Nota: tal vez esto sucede porque muchos de nosotros no ejecutamos la instalación .exe, sino que la extraemos. Muchos de nosotros no ejecutamos la instalación de Java (la instalación completa de Windows) por razones de seguridad ... solo queremos que el JDK quede fuera del camino donde los virus potenciales no puedan encontrarlo.

Sin embargo, su política con respecto a las ventanas .exe (lo que realmente es) es de hecho nueces, Sin embargo , el src.zip QUÉ existen en la instalación de Linux (un .tar.gz). Hay varias formas de extraer un .tar y un .gz, y prefiero la utilidad gratuita "7Zip".

  1. descargue el archivo Linux 64 bit .tar.gz
  2. use 7zip para descomprimir el .tar.gz en un .tar
  3. use 7zip para extraer el .tar al directorio de instalación
  4. src.zip te estará esperando en ese directorio de instalación.
  5. sáquelo y colóquelo donde desee.

Oracle, esto es realmente más que estúpido.


fuente
3
Oracle JDK8 (1.8.60 al menos) tenía el src.zip para mí en Windows. Sin embargo, Eclipse no lo recogió por defecto.
milletron
@milletron, yo también lo noté en un lanzamiento reciente de Windows. Tengo la sensación de que algo se descompuso en la producción de imágenes de descarga de Windows durante un período de tiempo anterior. ¿Quizás relacionado con la diferencia en la terminación de línea b / w unix (LF) y windows (CRLF)?
Esto es lo que tuve que hacer también para Java 9.
Lii
11

Tuve este problema con mi Ubuntu.

Todo lo que necesitaba hacer para obtener fuentes para mi instalación de Java fue:

sudo apt-get install sun-java6-source 
Xorty
fuente
En Ubuntu 14.04:E: Unable to locate package sun-java6-source
Nateowami
8

El JDK 1.6 que estoy usando actualmente en OSX Mountain Lion tampoco viene con src.zipninguno, y por lo que puedo decir, ya no hay OSX JDK compatible para 1.6 disponible.

Así que descargué la fuente OpenJDK (usando los enlaces de la respuesta aceptada (+1)) y luego ejecuté:

cd ~/Downloads
mkdir jdk6src
cd jdk6src
tar xf ../openjdk-6-src-b27-26_oct_2012.tar.gz
cd jdk/src/share/classes
jar cf /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/src.jar *

(los nombres de archivo y las rutas pueden variar ...)

Asocia eso src.jarcon la plataforma Java apropiada en tu IDE y estarás listo para comenzar.

Hay algunas discrepancias entre la fuente OpenJDK y el JDK que estoy ejecutando actualmente (los números de línea no coinciden en el depurador, por ejemplo), pero si todo lo que quiere es un zip / jar para apuntar su IDE para el relativamente En algunos casos, debe echar un vistazo a algún código para comprender cómo funciona algo, entonces esto debería ser el truco.

MisterEd
fuente
1
Gracias, necesitaba esto mientras usaba mac. no hay instrucciones claras sobre el último sistema operativo y cómo obtener la fuente. (todos hablan de la descarga de actualizaciones que no incluyan la fuente o la descarga de Oracle pero todo es vaga o errónea de una manera u otra)
DTC
1
Solo quería resaltar que esta es la forma correcta de hacerlo, porque como dijo @dtc, todas las demás instrucciones son erróneas o obsoletas. Hice esto con IntelliJ 15 en un proyecto Scala, funcionó perfectamente. Gracias @MisterEd!
mjuarez
src.jar no es una fuente completa. Por ejemplo, no contiene la fuente de javax.net
Kannan Ramamoorthy
4

Este archivo está contenido en la descarga estándar de JDK . Además, su sistema Linux probablemente tenga JDK en el repositorio. En mi archivo Ubuntu Linux se encuentra aquí: /usr/lib/jvm/java-6-sun-1.6.0.20/src.zip

vbezhenar
fuente
¡Ajá! ¿Puede publicar qué paquetes ha instalado para su Java VM y JDK, por favor? Porque no tengo esa carpeta.
Martijn Courteaux
4

En JDK 8 se puede encontrar la fuente en /src.zip. Ahora, en algunas versiones intermedias, faltaba este zip, pero nuevamente está disponible.ingrese la descripción de la imagen aquí

asegúrese de seleccionar también la fuente del asistente de instalación.

dvsakgec
fuente
2

Bueno, abrí la terminal en mi Mac y escribí: "echo $ JAVA_HOME", luego obtuve el directorio, fui allí y encontré src.zip

petery
fuente
1

¡¡Si!! ¡Entendido!

Descargué el Java Developer Kit (JDK) de sun.com para Linux. Había src.zip. Pero primero desinstalé todos los paquetes de Java con synaptic.

Martijn Courteaux
fuente
Tenga en cuenta que en Linux realmente no hay necesidad de ser root para instalar Java. Siempre (desde hace más de diez años) instalo Java como usuario no root en mis sistemas Un * x (entonces, no, no uso apt-get / synaptic / lo que sea).
Sintaxis T3rr0r
1

El enlace oficial ya no ofrece el código fuente original. El enlace oficial y las búsquedas ocasionales de google te llevarán con jdk abierto. Abrir jdk causa problemas con la compilación de Android a menos que se modifiquen los archivos de script de compilación. El paquete original se puede encontrar aquí:

sudo add-apt-repository "deb http://ppa.launchpad.net/ferramroberto/java/ubuntu oneiric main"

Este repositorio todavía tiene el paquete sun-java6-source. Crédito: http://pulasthisupun.blogspot.com/2012/05/installing-sun-java-6-with-apt-get-in.html

Jitendra Kulkarni
fuente