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.
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.
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:
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
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] .
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.
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] .
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 .
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.
Java | |
---|---|
Platforme | |
Sun Technologies | |
Nøgle tredjepartsteknologier | |
Historie |
|
Sprogegenskaber | |
Scripting sprog |
|
Java konferencer |
|
Java Virtual Machines ( sammenligning ) | |
---|---|
Sol , Oracle | |
Større implementeringer | |
Indlejret |
|
Andet | |
Ikke understøttet |
GNU projekt | ||
---|---|---|
Historie | ||
Licenser |
| |
Software _ |
| |
Personligheder |
| |
Andre emner |
|