De Wikipedia, la enciclopedia libre
Saltar a navegación Saltar a búsqueda

GNU Classpath es una implementación de software libre de la biblioteca de clases estándar para el lenguaje de programación Java . Se implementan la mayoría de las clases de J2SE 1.4 y 5.0. Por tanto, Classpath se puede utilizar para ejecutar aplicaciones basadas en Java . GNU Classpath es parte del Proyecto GNU . Originalmente se desarrolló en paralelo con libgcj debido a incompatibilidades de licencias, pero luego los dos proyectos se fusionaron.

GNU Classpath fue considerado un proyecto de alta prioridad por la Free Software Foundation . Cuando comenzó el proyecto Classpath, la licencia para la implementación oficial de Java de Sun Microsystems no permitía la distribución de ninguna alteración. Desde el inicio del proyecto Classpath, OpenJDK se lanzó bajo la GPL y ahora sirve como la implementación de referencia oficial para la plataforma Java .

Licencia [ editar ]

GNU Classpath tiene la licencia GNU General Public License con una excepción de vinculación . Esta es una licencia de software gratuita . Todo el código es propiedad formal de la Free Software Foundation , [ cita requerida ] y este propietario está sujeto a sus propias obligaciones contractuales con los desarrolladores. [ aclaración necesaria ]

Usos [ editar ]

GNU Classpath es utilizado por muchos tiempos de ejecución Java gratuitos (como Kaffe , SableVM , JamVM , Jikes RVM y VMKit) porque cada máquina virtual Java con todas las funciones debe proporcionar una implementación de las bibliotecas de clases estándar.

Algunos otros usos incluyen:

  • El compilador GNU para Java , que es capaz de compilar código Java en ejecutables independientes nativos.
  • GCJAppletViewer [4] para iniciar subprogramas Java desde la línea de comandos si no son compatibles con el navegador en uso.
  • IKVM.NET , que integra Java con .NET Framework
  • JNode, un sistema operativo para ejecutar aplicaciones Java. Este sistema está escrito en Java y solo ensamblador.
  • Máquinas virtuales especializadas como Jaos para la integración con el lenguaje de programación Oberon y JamaicaVM para sistemas embebidos con garantías en tiempo real.
  • Máquinas virtuales para computación distribuida con clústeres, con hasta 128 procesadores en Myrinet . [5]
  • El proyecto IcedTea usó GNU Classpath como reemplazo de elementos propietarios de OpenJDK , antes de su reemplazo upstream.

Historia [ editar ]

El desarrollo de GNU Classpath comenzó en 1998 con cinco desarrolladores. [ cita requerida ] Durante la historia, se fusionó varias veces con otros proyectos que tenían objetivos similares ( Kaffe , libgcj). En el pasado, GNU Classpath suministró su propia máquina virtual (Japhar). A medida que Classpath se estaba convirtiendo en una biblioteca base, compartida con muchos proyectos diferentes, esta máquina virtual recibió cada vez menos atención y ahora ya no es compatible. [ cita requerida ]

Después de implementar la mayoría de la API oficial de Java 1.4, el trabajo en el proyecto se volvió más orientado a errores que a la cobertura de API. El 24 de octubre de 2006, se confirmó la implementación de la última clase 1.4 que faltaba, HTMLWriter . La velocidad de desarrollo (calculada matemáticamente como el número promedio de nuevas líneas de código por día) alcanzó su nivel más alto en 2006. [ cita requerida ]

El nombre GNU Classpath fue sugerido originalmente por Bradley M. Kuhn a uno de los primeros desarrolladores, Paul Fisher. En ese momento, existía una gran preocupación en la comunidad de implementaciones de Java libre acerca de la aplicación de la marca registrada de Sun en Java frente a las implementaciones gratuitas. Kuhn sugirió el nombre $ CLASSPATH , que es la variable de entorno utilizada por la mayoría de los sistemas Java para indicar dónde residen las bibliotecas Java en la computadora. Dado que $ CLASSPATH a menudo se expandía a un nombre de ruta que incluía la palabra java (como /usr/lib/java), era una forma de evocar el nombre Javasin decirlo realmente. A Fisher y otros desarrolladores no les gustó el uso desagradable del $ y todas las letras mayúsculas y se decidieron por Classpath .

Equipo de desarrollo [ editar ]

El mantenedor se encarga del aspecto legal del proyecto, prepara los lanzamientos regulares del proyecto y realiza una gestión de calidad. El mantenedor también concede permisos de acceso a CVS . [ cita requerida ]

GNU Classpath no tiene una jerarquía formal. El trabajo lo realizan los más capacitados técnicamente y tampoco existe una división estricta del trabajo. Todos los cambios de código se publican primero en la lista de discusión como parches a los que se pueden oponerse si es necesario. El proyecto suele recibir entre cinco y ocho parches por día.

El progreso de la cobertura del código de la biblioteca GNU Classpath se puede rastrear contra OpenJDK6 [6] y OpenJDK7. [7]

Integración de máquinas virtuales [ editar ]

GNU Classpath contiene clases del espacio de nombres oficial de la API de Java. Cuando las llamadas al código nativo son necesarias o muy deseadas, esto se realiza desde una pequeña cantidad de clases de "VM". El nombre de dicha clase de VM coincide con el nombre de la clase que requiere métodos nativos, más el prefijo de VM adicional : VMObject, VMString, etc. Las clases de VM, almacenadas por separado del resto del código, son privadas y finales del paquete . Los métodos de estas clases contienen la palabra clave native , que indica la necesidad de la biblioteca nativa de soporte. Dichas bibliotecas son proporcionadas por los autores de una máquina virtual Java, por lo tanto, GNU Classpath puede conectarse a casi cualquier máquina virtual Java si las fuentes de dicha máquina virtual están disponibles y pueden modificarse.

Compatibilidad con las nuevas funciones de lenguaje en Java 1.5 [ editar ]

Antes de la versión 0.95, cada lanzamiento de GNU Classpath consistía en dos tarballs de lanzamiento separados; uno que representaba el estado de la rama de desarrollo principal y otro que contenía los contenidos de una rama más experimental, apoyando las adiciones, como genéricos, enumeraciones y anotaciones, presentes en Java 1.5. [8]

Desde la versión 0.95, [9] las adiciones de Java 1.5 como los genéricos se han integrado completamente en la rama principal. La rama se puede construir utilizando el compilador de Eclipse , ecj, para compilar el código fuente de Java 1.5 en código de bytes. En el caso de GCJ, utiliza ecj para realizar esta etapa inicial y luego convierte el código de bytes en código nativo. A partir de 0,95 en adelante, GNU Classpath también admite la compilación y ejecución del compilador javac de código abierto recién GPL utilizando GNU Classpath y también permite que la biblioteca de clases GNU Classpath, herramientas y ejemplos se compilen con el propio javac .

Clases del dominio omg.org [ editar ]

Sun y GNU Corba interactúan en un juego de dos clientes [a]

GNU Classpath no acepta ningún código que tenga una licencia no libre o que se haya generado automáticamente a partir de un código con una licencia no libre. La API estándar de Java contiene numerosas clases del dominio omg.org que normalmente se generan a partir de los archivos IDL , publicados por Object Management Group . La licencia de "uso, pero no modificación" de estos archivos cuenta como no gratuita. Por esta razón, las clases mencionadas en el proyecto GNU Classpath se escribieron desde cero, utilizando solo las especificaciones impresas oficiales de OMG. Por lo tanto, esta parte de GNU Classpath es tan gratuita como cualquier otro código del proyecto.

Ver también [ editar ]

  • Apache Harmony
  • Compilador GNU para Java
  • IKVM.NET
  • JamVM
  • JamaicaVM
  • Jaos
  • JikesRVM
  • Kaffe
  • Te helado
  • Implementaciones Java gratuitas
  • Biblioteca de clases de Java

Notas [ editar ]

  1. ^ Fosdem 2006 incluyó esta y otras demostraciones de intercambio de datos entre las implementaciones de CORBA de Sun y Classpath. [10] El código fuente está disponible [11] en el repositorio Classpath.

Referencias [ editar ]

  1. Hughes, Andrew John (16 de marzo de 2012). "¡GNU Classpath 0.99 liberado!" ( Registro de la World Wide Web ). Fuseyismo. Archivado desde el original el 14 de diciembre de 2012 . Consultado el 20 de marzo de 2012 .
  2. ^ http://git.savannah.gnu.org/cgit/classpath.git/log/
  3. ^ http://tromey.com/blog/?p=911
  4. ^ GCJ AppletViewer , Koders, Archivado desde el original en 2009-09-18 , obtenidos 2009-09-14.
  5. ^ "Júpiter", EECG , U Toronto.
  6. ^ "Cobertura de la biblioteca GNU Classpath contra OpenJDK6", J API , Fuseyism.
  7. ^ "Cobertura de la biblioteca GNU Classpath contra OpenJDK7", J API , Fuseyism.
  8. ^ "GNU Classpath" 95% y contando "0.19 lanzado", The GNU Project (anuncio), Software, The Free Software Foundation, 2005-11-02 , consultado el 31 de mayo de 2011.
  9. ^ "El lanzamiento de GNU Classpath 0.98" Mejor tarde que nunca ", El Proyecto GNU (anuncio), Software, The Free Software Foundation, 2009-02-05.
  10. ^ Fosdem (archivo de la conferencia), Classpath, 2006.
  11. ^ "Classpath", El proyecto GNU no es Unix (código fuente) (ejemplo), The Free Software Foundation .

Enlaces externos [ editar ]

  • Página web oficial
  • "Documentación generada automáticamente, incluido el código fuente", Classpath.
  • "Constructor", Classpath: ejecuciones de prueba y pruebas de compatibilidad binaria
  • Un desarrollador de GNU Classpath (mayo de 2006), "El estado de las colaboraciones libres en proyectos java" , noticias semanales de GNU / Linux (artículo).
  • "Permeable Development", SMI ( registro de la World Wide Web ), CH : ETHZ, 2006-01-25, archivado desde el original el 2006-07-20.