reservada - ¿Dónde encontrar el código fuente de los métodos nativos de java.lang?
jni nazareno (2)
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
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")?
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 .