¿Dónde encontrar el código fuente de los métodos nativos de java.lang?

Estoy vagamente familiarizado con el JNI , y tengo curiosidad por ver la implementación específica de mi máquina para algunos métodos nativos en el paquete java.lang. Thread#currentThread() , por ejemplo.

Encontré un montón de DLL en [JDK_HOME] / jre / bin, pero como dije, estoy tratando de encontrar el código fuente.

¿Alguien sabe dónde se puede encontrar el código fuente nativo? ¿Está incluso disponible, o está clasificado por Sun (me refiero a Oracle, “estamos en ello para ganarlo”)?

    Para JDK6 puedes descargar la fuente desde java.net . Para java.lang la historia comienza en j2se/src/share/native/java/lang/ , y luego busca … JDK7 reorganiza un poco la estructura del directorio.

    Algunos métodos, como Object.hashCode , pueden implementarse mediante un punto de acceso o en su lugar a través de JNI / Java.

    JDK6 se licencia libremente a través de la licencia de investigación de Java (JRL) y la licencia de uso interno de Java (JIUL). JDK7 y OpenJDK6 tienen licencia bajo GPL 2 con la excepción CLASSPATH (en términos generales, puede vincularse sin capturar el virus GNU). Yo no soy un abogado.

    ( Por cierto: a los verdaderos abogados les gustaría señalar que todavía soy un empleado de Sun Microsystems. Sun UK ya no existe. Ahora es Oracle).

    Actualización (Agregar ubicación para Thread.c): http://hg.openjdk.java.net/jdk7/jdk7/jdk/file/9b8c96f96a0f/src/share/native/java/lang/Thread.c

    Puede ver el código fuente de OpenJDK (con licencia bajo GPLv2 con Classpath Exception ). Probablemente la mejor manera de estudiar las partes internas de la implementación de JDK, a menos que desee estar sujeto a la Licencia de Investigación de Java , en cuyo caso puede acceder a la fuente real de JDK 6 .