Dónde encontrar el código fuente para java.lang métodos nativos? [cerrado]


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

He encontrado un montón de archivos DLL en [JDK_HOME]/jre/bin, pero como he dicho 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 el Sol (oops me refiero A "Estamos En Él Para Ganar" Oracle)?

Author: Deduplicator, 2010-02-19

2 answers

Para JDK6 puede descargar el código fuente desde java.net . Para java.lang la historia comienza en j2se/src/share/native/java/lang/, y luego buscar... JDK7 reorganiza un poco la estructura de directorios.

Algunos métodos, como Object.hashCode, pueden ser implementados por hotspot en su lugar o además a través de JNI/Java.

JDK6 tiene licencia libre a través de la Licencia de Investigación de Java (JRL) y la Licencia de Uso Interno de Java (JIUL). JDK7 y OpenJDK6 están licenciados bajo la GPL 2 con excepción CLASSPATH (en términos generales, puede enlace a él sin coger el virus GNU). No soy 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. Es ahora Oráculo.)

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

 33
Author: Tom Hawtin - tackline,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-03-21 07:24:29

Puede ver el código fuente de OpenJDK (licenciado bajo GPLv2 con Excepción Classpath). Probablemente la mejor manera de estudiar el funcionamiento interno de la implementación de JDK, a menos que desee estar vinculado por la Licencia de Investigación de Java , en cuyo caso puede acceder a la fuente real de JDK 6 .

 11
Author: Chris Jester-Young,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-02-18 22:18:09