GNU Classpath

Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den version , der blev gennemgået den 20. december 2021; checks kræver 2 redigeringer .
GNU Classpath

GNU Classpath-demoapplikation med Swing -grænseflade
Type Bibliotek
Udvikler GNU Project
(formelt afholdt af FSF )
Skrevet i C og Java
Operativ system på tværs af platforme
Første udgave 1998
Hardware platform Java virtuel maskine
nyeste version 0,99 [1] ( 7. marts 2012 )
Stat Aktiv
Licens GNU GPL + GNU linking undtagelse
Internet side classpath.org
 Mediefiler på Wikimedia Commons

GNU Classpath er et projekt rettet mod at skabe en gratis implementering af standard klassebiblioteket til programmeringssproget Java . På trods af bibliotekets store størrelse er det meste af opgaven allerede udført, inklusive Swing , CORBA og andre kerneelementer. Classpath-udviklerne har implementeret næsten alle J2SE 1.4 og 5.0 klasserne. Classpath kan således bruges til at køre populære Java-programmer som Vuze og Eclipse .

GNU Classpath er en af ​​topprioriteterne i GNU -projektet . Selvom kildekoden til den "officielle" implementering fra Sun Microsystems er tilgængelig, tillader licensen ikke omfordeling af ændringer. Dette var en stor hindring for mange innovative projekter, der ikke kunne udvikle sig uden at ændre denne kode. GNU Classpath-udviklerfællesskabet omfatter institutioner, der er fokuseret på forskning i Java Virtual Machines, såvel som virksomheder, der er interesserede i at levere alternative Java-runtime-miljøer.

GNU Classpath er en del af Free Software Foundation . Det blev oprindeligt udviklet side om side med libgcj på grund af licensinkompatibiliteter, men projekterne blev senere slået sammen.

Licens

GNU Classpath er udgivet under GNU General Public License med en linkundtagelse . Dette er en gratis softwarelicens . Al kode er formelt ejet af Free Software Foundation , og denne ejer er bundet af deres kontraktlige forpligtelser over for udviklerne.

Ansøgninger

GNU Classpath bruges af mange gratis Java runtime-miljøer (såsom Kaffe , SableVM , JamVM , CACAO , Jikes RVM ) fordi enhver fuldt funktionel Java Virtual Machine skal levere en implementering af standard klassebiblioteker.

Andre applikationer omfatter:

Historie

Udvikling af GNU Classpath startede i 1998 med 5 udviklere. Det er flere gange gennem sin historie fusioneret med andre projekter med lignende mål ( Kaffe , libgcj). Tidligere leverede GNU Classpath sin egen virtuelle maskine (Japhar). Da Classpath blev et kernebibliotek, der blev delt på tværs af mange projekter, fik den virtuelle maskine mindre og mindre opmærksomhed og er i øjeblikket ikke understøttet.

Siden implementeringen af ​​de fleste af de officielle Java 1.4 API'er er arbejdet i projektet blevet mere fokuseret på at finde og rette fejl end API-dækning. Den 24. oktober 2006 blev implementeringen af ​​den sidste manglende Java 1.4-klasse, HTMLWriter , fuldført . Udviklingshastigheden (beregnet matematisk som det gennemsnitlige antal nye kodelinjer pr. dag) nåede et rekordhøjt niveau i 2006.

Navnet GNU Classpath blev foreslået af Bradley M. Kuhn til en af ​​de originale udviklere, Paul Fisher. På det tidspunkt var der dyb bekymring i det gratis Java-implementeringsfællesskab om at anvende Suns varemærke på Java mod gratis implementeringer. Kuhn foreslog navnet $CLASSPATH , som er en miljøvariabel , der bruges af de fleste Java-systemer til at angive placeringen af ​​Java-biblioteker på en computer. Da $CLASSPATH ofte udvides til at inkludere ordet java (f.eks . ), var dette en måde at navngive Java på uden at navngive det. Fisher og andre udviklere kunne ikke lide den grimme brug af $ og alle store bogstaver, så de slog sig ned på Classpath . /usr/lib/java

Udviklingsteam

Projektteamet består af omkring 70 udviklere (hvoraf kun 20 er aktive i øjeblikket) og en aktiv vedligeholder. Vedligeholderen tager sig af den juridiske side af projektet, forbereder de næste udgivelser af projektet og styrer kvaliteten. Vedligeholderen giver også adgang til CVS .

I modsætning til nogle projekter har GNU Classpath ikke et strengt hierarki. Arbejdet udføres af de mest teknisk dygtige, og der er ingen streng arbejdsdeling. Alle kodeændringer sendes først som patches til diskussionslisten, hvor de om nødvendigt kan afvises. Projektet modtager fem til otte plastre om dagen.

Projektet har sit eget testværktøj ( Mauve ) med omkring 175.000 tests og kontroller dagligt for at sikre, at projektets klasser er kompatible med dem i det officielle Sun API.

Fremskridtene for GNU Classpath bibliotekskodedækning kan spores siden J2SE 1.4 [2] og Java SE 5.0 [3] .

Virtual Machine Integration

GNU Classpath indeholder klasser fra det officielle Java API-navneområde. Hvor opkald til maskinkode er nødvendige eller yderst ønskelige , sker dette fra et lille antal specialbyggede "VM" klasser (VM er en virtuel maskine). Navnet på en sådan klasse er det samme som klassenavnet på den påkrævede native metode plus et ekstra VM -præfiks : VMObject, VMString, og så videre. VM-klasser holdes adskilt fra resten af ​​koden, har pakkens private eller endelige attributter. Metoderne i disse klasser indeholder nøgleordet native for at angive behovet for et understøttende bibliotek. Sådanne biblioteker leveres af forfatterne af Java Virtual Machine. Derfor kan GNU Classpath forbindes til næsten enhver virtuel Java-maskine, så længe kildekoden til en sådan maskine er tilgængelig og kan ændres.

Understøttelse af nye sprogfunktioner i 1.5

Før version 0.95 bestod hver udgivelse af GNU Classpath af to separate arkiver: det ene repræsenterer tilstanden for den primære udviklingsgren, og det andet indeholdt en mere eksperimentel gren, der understøttede tilføjelser såsom generiske, opregninger og annoteringer, der findes i Java 1.5.

Siden version 0.95 er Java 1.5-tilføjelser såsom generiske stoffer blevet fuldt integreret i hovedgrenen. Grenen tillader GCJ at bruge Eclipse-kompileren , ecj, til at kompilere Java 1.5-kildekode til bytekode , som derefter konverteres til native kode af GCJ [1] .

Interoperabilitet med den gratis Sun-kompiler

Startende med version 0.95 understøtter GNU Classpath kompilering og kørsel af den gratis GPL javac - kompiler ved hjælp af Classpath -runtime ( GIJ ) og compiler ( GCJ ), og tillader GNU Classpath-klassebiblioteket, værktøjer og eksempler at blive kompileret af javac selv .

Klasser fra omg.org-domænet

GNU Classpath accepterer ikke kode under en ikke-fri licens eller automatisk genereret fra kode under en ikke-fri licens. Standard Java API indeholder mange klasser fra omg.org-domænet, normalt genereret fra IDL - filer udgivet af Object Management Group . En licens, der kun tillader dig at bruge, men ikke ændre disse filer, betragtes som ikke-fri. Det er af denne grund, at de nævnte klasser i GNU Classpath-projektet er blevet omskrevet kun baseret på de officielle OMG-trykte specifikationer. Derfor er denne del af GNU Classpath lige så fri som enhver anden kode i projektet.

Se også

Noter

  1. 1 2 Udgivelsen af ​​GNU Classpath 0.98 "Bedre sent end aldrig" . Hentet 9. juli 2010. Arkiveret fra originalen 8. juli 2010.
  2. GNU Classpath Library Dækning mod J2SE 1.4 Arkiveret 12. juli 2006.
  3. GNU Classpath Library Dækning mod Java SE 5.0 Arkiveret 19. juli 2006.

Links