2012-01-19 8 views

Respuesta

4

El nombre Java se puede aplicar a muchos componentes diferentes que funcionan en conjunto. Puede significar la "Máquina Virtual Java" para algunos, la "Especificación del Lenguaje Java" para otros, "compiladores Java" para muchos y "bibliotecas de lenguaje Java" para bastantes.

Si desea el código fuente de la máquina virtual Java (JVM) para Java5, it is available; pero no bajo una licencia de fuente abierta. La primera copia de "código abierto" de Java se lanzó con "Java 6". Si desea el código fuente de Java5, debe suscribirse para obtener un "Acuerdo de Licencia de Investigador de Java" que le proporcionó acceso al código fuente de la JVM (al menos Java5). Tener el código fuente de la JVM es completamente innecesario al escribir código para el entorno Java5.

Si desea el código fuente para la Especificación del lenguaje Java para Java5, it is a text document (typically published as a book or on-line set of web pages). Si bien podría permitirte entender si un compilador debería presentar un error en ciertas circunstancias, nuevamente no es necesario escribir un programa para el entorno Java5.

Si desea el compilador Java5, it can be downloaded in the oracle archives of old releases of the Java development toolkit. Si desea escribir un programa para Java5, la descarga y el uso de esta oferta son generalmente las mejores prácticas para desarrollar programas Java5. Alternativamente, puede configurar un compilador compatible compatible (Java6/Java7) para emitir código Java5.

Si desea las bibliotecas de idiomas Java5, se incluyen con el kit de desarrollo Java5. Las ofertas del kit de desarrollo Java6 y Java7 proporcionan bibliotecas de idiomas que realizan grandes esfuerzos para ser compatibles con el código fuente de Java5; sin embargo, las bibliotecas más nuevas también incluyen características y operaciones más nuevas a las que una máquina virtual Java5 no podrá hacer referencia. Nuevamente, existen técnicas para usar de forma segura una versión compatible con versiones anteriores de Java (6/7); sin embargo, no es necesario aplicar ningún cuidado adicional si basan su desarrollo en un kit de desarrollo Java5. El "código fuente" para las bibliotecas de idiomas se incluyó en el código fuente de la JVM bajo el Acuerdo de licencia de investigación de Java, en la medida en que se permitió a SUN incluir dicho código fuente.

Si bien SUN ha licenciado una serie de tecnologías de otras compañías de manera que se pueden distribuir libremente con Java5, SUN no necesariamente posee todas las tecnologías en Java5.Como tal, incluso bajo el Acuerdo de Licencia de Investigador de Java, parte del código fuente no está disponible (aunque las bibliotecas compiladas sí lo están). Los proyectos de código abierto (como OpenJDK) implementaron rápidamente estos "agujeros" faltantes con bibliotecas de código abierto para obtener una pila de código abierto totalmente funcional de Java; pero, eso es Java6 + (no Java5).

+0

Gracias por la respuesta elaborada, soy solo un aficionado al que le gustaría ver la fuente de el java.lang y otros paquetes básicos para saciar mi curiosidad ... ¿debería revisar los archivos de Java? :) !! – hakish

+0

Si solo quieres ver el origen de las cosas "java.lang", mira a Java6. Al menos está disponible sin una licencia restrictiva. Además, tenga en cuenta que la mayor parte está escrita en Java, con varios respaldos "nativos" clave. Necesita conocer su JNI para leerlo, y la implementación nativa realmente depende de la implementación de JVM. Estas áreas del código tratan sobre cosas que deben hacerse, pero no están expuestas en el lenguaje (como la memoria malloc y el registro de clases de manera que permite la recolección automática de basura). Cosas interesantes; rara vez es útil para el proyecto típico. –

0

visita del oracle archive

+0

no veo el código fuente en este enlace solo los binarios ... – hakish

+3

Toda la fuente que puede obtener está en el JDK. –

+0

No olvides que Java 5.0 es tan viejo que fue End Of Life antes de que Oracle comprara Sun. También es anterior a OpenJDK, por lo que la única fuente disponible está en el JDK. –

1

Java 1.5 no es de código abierto. Citando Wikipedia:

El 13 de noviembre de 2006, Sun lanzó gran parte de Java como software libre y de código abierto, (FOSS), bajo los términos de la Licencia Pública General de GNU (GPL). El 8 de mayo de 2007, Sun terminó el proceso, haciendo que todo el código central de Java esté disponible bajo términos de distribución de software libre/fuente abierta, además de una pequeña porción de código en la que Sun no poseía los derechos de autor.

Por lo que puedo recordar, fue posible obtener el código fuente para fines de investigación (nuestra universidad tenía acceso al código fuente con un acuerdo especial con Sun) pero no creo que sea posible para obtenerlo de Oracle.

Antes del open source había varias implementaciones gratuitas de la JVM y de las clases principales. Mira http://en.wikipedia.org/wiki/Free_Java_implementations para ver ejemplos.

Cuestiones relacionadas