GNU Classpath es una implementación de software libre de la biblioteca de clases estándar para el lenguaje de programación Java . Implementa la mayoría de las clases de J2SE 1.4 y 5.0. Por lo tanto, Classpath se puede usar para ejecutar aplicaciones basadas en Java . GNU Classpath forma parte del Proyecto GNU . Originalmente se desarrolló en paralelo con libgcj debido a incompatibilidades de licencia, pero posteriormente ambos proyectos se fusionaron.
GNU Classpath fue considerado un proyecto de alta prioridad por la Free Software Foundation . Cuando se inició el proyecto Classpath, la licencia de la implementación oficial de Java de Sun Microsystems no permitía la distribución de ninguna modificación. Desde entonces, OpenJDK se ha publicado bajo la licencia GPL y actualmente sirve como implementación de referencia oficial para la plataforma Java .
Licencia
GNU Classpath se rige por la Licencia Pública General de GNU con una excepción de enlace . Se trata de una licencia de software libre . Todo el código pertenece formalmente a la Free Software Foundation , y esta está sujeta a sus propias obligaciones contractuales con los desarrolladores.
Usos
GNU Classpath es utilizado por muchos entornos de ejecución Java gratuitos (como Kaffe , SableVM , JamVM , Jikes RVM y VMKit) porque toda máquina virtual Java con todas las funciones debe proporcionar una implementación de las bibliotecas de clases estándar.
Otros usos incluyen:
- El compilador GNU para Java , que es capaz de compilar código Java en ejecutables nativos independientes.
- GCJAppletViewer [ 2 ] para ejecutar applets de Java desde la línea de comandos si no son compatibles con el navegador en uso.
- IKVM , que integra Java con el .NET Framework.
- JNode es un sistema operativo para ejecutar aplicaciones Java. Este sistema está escrito únicamente en Java y lenguaje 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 . [ 3 ]
- El proyecto IcedTea utilizó GNU Classpath como reemplazo de elementos propietarios de OpenJDK , antes de que estos fueran reemplazados en la versión principal del proyecto.
Historia
El desarrollo de GNU Classpath comenzó en 1998 con cinco desarrolladores. A lo largo de su historia, se fusionó varias veces con otros proyectos de objetivos similares ( Kaffe , libgcj). En el pasado, GNU Classpath contaba con su propia máquina virtual (Japhar). A medida que Classpath se convirtió en una biblioteca base, compartida con muchos proyectos diferentes, esta máquina virtual recibió cada vez menos atención y actualmente ya no recibe soporte.
Tras implementar la mayor parte de la API oficial de Java 1.4, el trabajo en el proyecto se centró más en la corrección de errores que en la cobertura de la API. El 24 de octubre de 2006, se implementó la última clase faltante de la versión 1.4, HTMLWriter . La velocidad de desarrollo (calculada matemáticamente como el número promedio de líneas de código nuevas por día) alcanzó su máximo histórico en 2006.
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 sobre la aplicación de la marca registrada de Sun sobre Java contra las implementaciones libres. 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 de Java en la computadora. Dado que $CLASSPATHa menudo se expande a un nombre de ruta que incluye la palabra java (como /usr/lib/java), era una forma de evocar el nombre Java sin decirlo explícitamente. A Fisher y otros desarrolladores no les gustó el uso poco estético del $ y todas las letras mayúsculas y optaron por Classpath .
Equipo de desarrollo
El responsable del proyecto se encarga de los aspectos legales, prepara las versiones periódicas y realiza parte del control de calidad. Además, otorga los permisos de acceso a CVS .
GNU Classpath no tiene una jerarquía formal. El trabajo lo realizan los usuarios con mayor capacidad técnica y no existe una división estricta de tareas. Todos los cambios de código se publican primero en la lista de discusión como parches, donde se pueden rechazar si es necesario. El proyecto suele recibir entre cinco y ocho parches al día.
El progreso de la cobertura de código de la biblioteca GNU Classpath se puede seguir en relación con OpenJDK6 [ 4 ] y OpenJDK7. [ 5 ]
Integración de máquinas virtuales
GNU Classpath contiene clases del espacio de nombres de la API oficial de Java. Cuando se requieren o se desean llamadas a código nativo, esto se realiza desde un pequeño número de clases "VM". El nombre de una clase VM coincide con el nombre de la clase que requiere métodos nativos, más el prefijo VMjava.lang.VMObject adicional: , java.lang.VMStringy así sucesivamente. Las clases VM, almacenadas por separado del resto del código, son de acceso privado al paquete y finales . 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 que GNU Classpath puede conectarse a casi cualquier máquina virtual Java si el código fuente de dicha máquina virtual está disponible y se puede modificar.
Compatibilidad con las nuevas características del lenguaje en Java 1.5.
Antes de la versión 0.95, cada lanzamiento de GNU Classpath constaba de dos archivos tar de lanzamiento separados; uno que representaba el estado de la rama de desarrollo principal y otro que contenía el contenido de una rama más experimental, que admitía las adiciones, como genéricos, enumeraciones y anotaciones, presentes en Java 1.5. [ 6 ]
Desde la versión 0.95, [ 7 ] las adiciones de Java 1.5, como los genéricos, se han integrado completamente en la rama principal. La rama se puede compilar usando el compilador Eclipse , ecj, para compilar el código fuente de Java 1.5 a bytecode. En el caso de GCJ, usa ecj para realizar esta etapa inicial y luego convierte el bytecode a código nativo. A partir de la versión 0.95, GNU Classpath también admite la compilación y ejecución del compilador javac de código abierto con licencia GPL usando GNU Classpath y también permite compilar la biblioteca de clases, herramientas y ejemplos de GNU Classpath con el propio javac .
Clases del dominio omg.org

GNU Classpath no acepta código con licencia no libre ni código generado automáticamente a partir de código con 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 el Object Management Group . La licencia de "uso, pero no modificación" de estos archivos se considera no libre. Por este motivo, las clases de CORBA mencionadas en el proyecto GNU Classpath (en org.omg.CORBA) se escribieron desde cero, utilizando únicamente las especificaciones oficiales impresas de OMG. Por lo tanto, esta parte de GNU Classpath es tan libre como cualquier otro código del proyecto.
Véase también
Notas
Referencias
- ↑ Hughes, Andrew John (16 de marzo de 2012). "¡GNU Classpath 0.99 lanzado!" ( blog de la World Wide Web ). Fuseyism. Archivado del original el 14 de diciembre de 2012. Recuperado el 20 de marzo de 2012 .
- ↑ Visor de applets GCJ , Koders, archivado del original el 18/09/2009 , recuperado el 14/09/2009..
- ↑ "Júpiter", EECG , Universidad de Toronto.
- ↑ "Cobertura de la biblioteca GNU Classpath contra OpenJDK6", J API , Fuseyism, archivado del original el 6 de septiembre de 2015 , recuperado el 31 de mayo de 2012.
- ↑ "Cobertura de la biblioteca GNU Classpath contra OpenJDK7", J API , Fuseyism, archivado del original el 4 de marzo de 2016 , recuperado el 31 de mayo de 2012.
- ↑ "GNU Classpath "95% y contando" 0.19 lanzado", El Proyecto GNU (anuncio), Software, The Free Software Foundation, 2 de noviembre de 2005 , consultado el 31 de mayo de 2011.
- ↑ "Lanzamiento de GNU Classpath 0.98 "Más vale tarde que nunca", Proyecto GNU (anuncio), Software, Fundación del Software Libre, 5 de febrero de 2009.
- ↑ Fosdem (archivo de conferencias), Classpath, 2006.
- ↑ "Classpath", El proyecto GNU no es Unix (código fuente) (ejemplo), La Fundación del Software Libre.
Enlaces externos
- Sitio web oficial

- "Documentación generada automáticamente, incluido el código fuente", Ruta de clases.
- "Builder", Classpath , archivado del original el 2 de mayo de 2013 , recuperado el 2 de marzo de 2013.: ejecuciones de pruebas y pruebas de compatibilidad binaria
- Un desarrollador de GNU Classpath (mayo de 2006), "El estado de las colaboraciones en proyectos Java libres" , Noticias semanales de GNU/Linux (artículo).
- "Desarrollo permeable", SMI ( blog de la World Wide Web ), CH : ETHZ, 25/01/2006, archivado del original el 20/07/2006..
- Software del Proyecto GNU
- Bibliotecas de Java (lenguaje de programación)
- Java (plataforma de software)
- Software que utiliza la excepción de enlace GPL