2009-01-08 11 views
77

Uso de Eclipse Quiero ver el código fuente de una clase Java central (por ejemplo, java.util.concurrent.ConcurrentHashMap) pero cuando navego a la fuente usando 'Abrir declaración' dice 'Fuente no encontrada' y me da la opción de adjuntar la fuente.¿Cómo veo el código fuente de JRE en Eclipse?

Mi pregunta es; ¿Cómo conecto la fuente? ¿De dónde saco la fuente .jar para la biblioteca java.util.concurrent?

Respuesta

80

Necesita tener el JDK instalado. A continuación se puede ver en JDK_INSTALL_DIR\src.zip

Para mí es C:\Program Files\java\jdk1.6.0_11\ (depende de la versión actual)

No es necesario para obtener una versión de código abierto especial.

+2

¿Y ahora? Oracle parece ocultar la fuente? ¿Puede por favor aconsejarme cómo hacer lo mismo ahora? –

4

Puede ir al http://openjdk.java.net/ y descargar las últimas compilaciones del proyecto openJDK. Creo que esto debería darte lo que necesitas.

9

Aquí hay algunas buenas respuestas sobre dónde obtener la fuente. Pero una palabra de advertencia: sería cauteloso acerca de cómo lo usa (si lo está usando simplemente como referencia). El API documentation es el único contrato contra el que debe codificar, y es lo que los desarrolladores mantendrán constante/intacto entre lanzamientos. No utilizaría la fuente para conocer los detalles de implementación y luego codificaría mis aplicaciones con respecto a esos detalles de implementación, ya que pueden cambiar entre lanzamientos.

+6

solo quiero ver el código - para ver cómo funciona –

+1

No hay problema con eso :) –

3

Si no puede encontrar la fuente real también puede usar un descompilador para regenerar el origen del archivo de clase.

Personalmente utilizo JAD combinado con el complemento JADClipse para ver el origen en Eclipse.

+0

Michael, gracias! JAD y JadClipse son un gran hallazgo. – Domchi

6

Debería poder ver "JRE System Library [jdk1.x.xxxx]" cuando mira la ruta de compilación Java de su proyecto.

Puede acceder a la pantalla de configuración de la ruta de compilación del proyecto: haciendo clic derecho en el proyecto -> Ruta de compilación -> Configurar ruta de compilación ... Deberá poder ver la entrada de la biblioteca del sistema JRE en la parte inferior de la lista.

La manera más fácil de ver la fuente de la clase es usar el acceso directo "Tipo abierto". El valor predeterminado para este acceso directo es:.. Ctrl + Shift + T" La clase que se está buscando debería aparecer a medida que escribe su nombre

+0

Ctrl + shift + T hizo el truco para mí. Gracias. –

77

Cuando se está codificando en Eclipse, pulse CTRL y haga clic en cualquier nombre de clase Java central en su fuente. Eclipse ahora mostrará una pantalla que dice que no tiene las fuentes instaladas. Sin embargo, en esta pantalla hay un enlace que dice "Adjuntar fuente ...". Haga clic en ese enlace y importe el archivo src.zip desde su directorio de instalación JDK (src.zip). Esto debería ser el truco

+5

+1 por el truco – Edge

+2

+1 Esta respuesta debe combinarse con la respuesta aceptada. – Adamsan

0

Hay un buen complemento GrepCode que permite la visualización de fuentes Java para muchas bibliotecas de código abierto.

4

para Ubuntu, instalar OpenJDK-6-fuente y utilizar /usr/lib/jvm/java-6-openjdk/src.zip

1

Fuera Eclipse se puede ver en las fuentes de JDK javasourcecode.org. En esta página puede pasar de la documentación oficial de la API al código fuente y viceversa.

+1

La URL ya no es válida – sigi

2

Haga clic con el botón derecho en el proyecto -> Ruta de compilación -> Configurar compilación. Ahora edite su jre> seleccione la 2da opción alternativa jre -> seleccione cualquier jdk (no jre). Finalizar, ahora abre cualquier clase con ctrl + clic, se mostrará su código fuente.

0

Puede usar 'Eclipse Class Decompiler integra JD, Jad,' de Eclipse Marketplace.

Desde el cuadro de búsqueda en el Eclipse Marketplace escribe: 'jad' y lo encontrarás.

0

archivo src.zip está presente en la carpeta instalado JDK: ..\Program Files\Java\jdk1.8.0_131

proporcionar esta ruta en la pantalla que muestra Adjuntar fuente ... trabajó para mí.

Cuestiones relacionadas