stringtranslate.com

Biblioteca de clases Java

La biblioteca de clases Java ( JCL ) es un conjunto de bibliotecas cargables dinámicamente a las que los lenguajes de máquina virtual Java (JVM) pueden llamar en tiempo de ejecución . Debido a que la plataforma Java no depende de un sistema operativo específico , las aplicaciones no pueden depender de ninguna de las bibliotecas nativas de la plataforma. En cambio, la plataforma Java proporciona un conjunto completo de bibliotecas de clases estándar que contienen las funciones comunes a los sistemas operativos modernos.

JCL tiene tres propósitos dentro de JVM:

Implementación y configuración

JCL está escrito casi en su totalidad en Java, excepto las partes que necesitan acceso directo al hardware y al sistema operativo (como E/S o gráficos de mapa de bits ). Las clases que dan acceso a estas funciones comúnmente usan contenedores de interfaz nativa de Java para acceder a las API del sistema operativo .

Casi todo el JCL se almacena en un único archivo Java llamado "rt.jar" que se proporciona con las distribuciones JRE y JDK . La biblioteca de clases de Java (rt.jar) se encuentra en la ruta de clases de arranque predeterminada [1] y no tiene que aparecer en la ruta de clases declarada para la aplicación. El tiempo de ejecución utiliza el cargador de clases de arranque para encontrar el JCL.

El Java Module System (parte de la versión Java 9 ) rompió el archivo JAR monolítico "rt.jar" y modularizó el propio JCL en varios módulos con dependencias específicas. [2]

Conformidad

Cualquier implementación de Java debe pasar las pruebas de cumplimiento del Kit de compatibilidad de tecnología Java, que incluye pruebas de JCL.

Características principales

Se accede a las funciones JCL a través de clases proporcionadas en los paquetes .

Licencias

Licencias previas

Antes del lanzamiento de OpenJDK, el JDK se basaba en una licencia propietaria .

Tras su promesa de lanzar un JDK totalmente compilable basado en código fuente abierto y casi completamente gratuito en la primera mitad de 2007, [3] Sun publicó el código fuente completo de la biblioteca de clases bajo GPL el 8 de mayo de 2007, excepto algunos piezas limitadas que Sun contaba con licencia de terceros que no querían que su código se publicara bajo una licencia de código abierto. [4] El objetivo de Sun era reemplazar las partes que siguen siendo propietarias y de código cerrado con implementaciones alternativas y hacer que la biblioteca de clases sea completamente gratuita y de código abierto.

Hasta diciembre de 2010, Sun puso a disposición la parte restante gravada del JDK y luego Oracle como Binary Plugs [5] que eran necesarios para construir el JDK pero no necesarios para ejecutarlo. en mayo de 2007 , la única parte de la biblioteca Class que seguía siendo propietaria y de código cerrado (4% en mayo de 2007 para OpenJDK 7, [6] y menos del 1% en mayo de 2008 y OpenJDK 6 [7] [8 ] ) fue [9] la implementación de SNMP . [10]

Desde la primera versión de mayo de 2007, Sun, con la ayuda de la comunidad, lanzó como código abierto o reemplazó con alternativas de código abierto casi todo el código gravado:

Lanzamiento de código abierto

A partir de diciembre de 2010, todos los llamados complementos binarios fueron reemplazados por reemplazos de código abierto , lo que hizo que todo el JDK fuera abierto. [20]

Implementaciones alternativas

GNU Classpath es la otra biblioteca principal de software libre para Java. A diferencia de otras implementaciones, solo implementa la biblioteca de clases y es utilizada por muchos tiempos de ejecución de Java gratuitos (como Kaffe , SableVM , JamVM ).

Apache Harmony era otra biblioteca de software libre. Su objetivo era implementar las otras partes de la pila de Java ( máquina virtual , compilador y otras herramientas necesarias para cualquier implementación de Java ).

Ver también

Referencias

  1. ^ "Cómo se encuentran las clases". Corporación Oráculo . Archivado desde el original el 25 de abril de 2009 . Consultado el 5 de diciembre de 2015 .
  2. ^ "Resumen del módulo JDK". Corporación Oráculo . 2015-10-23. Archivado desde el original el 8 de diciembre de 2015 . Consultado el 29 de noviembre de 2015 .
  3. ^ "Java gratuito y de código abierto: preguntas frecuentes". sol.com . Mayo de 2007. Archivado desde el original el 22 de mayo de 2007 . Consultado el 27 de junio de 2024 .
  4. ^ Verde rico (8 de mayo de 2007). "¡Open JDK ya está aquí!". Microsistemas solares . Archivado desde el original el 7 de febrero de 2012 . Consultado el 25 de noviembre de 2011 .
  5. ^ "Conexiones binarias OpenJDK". Microsistemas solares . 2007-05-08. Archivado desde el original el 26 de agosto de 2012 . Consultado el 25 de noviembre de 2011 .
  6. ^ Fitzsimmons, Thomas (18 de mayo de 2007). "Planes para OpenJDK" . Consultado el 22 de mayo de 2007 .
  7. ^ Ángel, Lillian (13 de marzo de 2008). "OpenJDK para reemplazar IcedTea en Fedora 9". Archivado desde el original el 10 de diciembre de 2012 . Consultado el 5 de abril de 2008 .
  8. ^ Wade, Karsten (13 de marzo de 2008). "¡OpenJDK en Fedora 9!". redhatmagazine.com. Archivado desde el original el 21 de abril de 2008 . Consultado el 5 de abril de 2008 . Thomas Fitzsimmons actualizó las páginas fuente de las notas de la versión de Fedora 9 para reflejar que Fedora 9 se enviaría con OpenJDK 6 en lugar de la implementación IcedTea de OpenJDK 7. Fedora 9 (Sulphur) se lanzará en mayo de 2008.
  9. ^ Herron, David (4 de octubre de 2007). "Planes para OpenJDK". Archivado desde el original el 11 de octubre de 2007 . Consultado el 9 de octubre de 2007 .
  10. ^ ab "Se publicó la fuente de OpenJDK 6 b10". 2008-05-30. Archivado desde el original el 18 de junio de 2009 . Consultado el 1 de junio de 2008 .
  11. ^ "página del proyecto del motor de audio". Archivado desde el original el 16 de mayo de 2007 . Consultado el 19 de mayo de 2007 .
  12. ^ "Gervill - Sintetizador de software". Archivado desde el original el 4 de octubre de 2011 . Consultado el 1 de junio de 2008 .
  13. ^ "Se ha agregado Crypto a OpenJDK". 2007-09-27. Archivado desde el original el 25 de diciembre de 2007 . Consultado el 7 de octubre de 2007 .
  14. ^ "página del proyecto de escalador de fuentes". Archivado desde el original el 10 de junio de 2015 . Consultado el 19 de mayo de 2007 .
  15. ^ abc "Página del proyecto Java2D". Archivado desde el original el 16 de mayo de 2007 . Consultado el 19 de mayo de 2007 .
  16. ^ "Rasterizador de fuentes Freetype". 2007-08-07. Archivado desde el original el 7 de enero de 2009 . Consultado el 24 de noviembre de 2007 .
  17. ^ "Bienvenidos al proyecto PhoneME". Archivado desde phoneme.dev.java.net/ el original el 10 de junio de 2007. {{cite web}}: Comprobar |url=valor ( ayuda )
  18. ^ "página del proyecto de rasterizador de gráficos". Archivado desde el original el 16 de mayo de 2007 . Consultado el 19 de mayo de 2007 .
  19. ^ "Javascript está sobrecargado y no hay soporte para complementos de JavaScript". Té helado . 2008-03-11. Archivado desde el original el 27 de septiembre de 2008 . Consultado el 1 de junio de 2008 . Resumen cambiante. JavaScript ya no está sobrecargado, pero aún necesitamos soporte de LiveConnect.
  20. ^ Kelly O'Hair (diciembre de 2010). "Se eliminó la lógica de complementos binarios OpenJDK7 y OpenJDK6". Corporación Oráculo . Archivado desde el original el 7 de abril de 2022 . Consultado el 25 de noviembre de 2011 .

Enlaces externos